########################################################################################
#   This file is auto generated at 2025-03-31 23:22:41.237271, do not edit this file   #
########################################################################################
from fittie.fitfile.profile.message_profile import (
    MessageProfile,
    FieldProfile,
    SubField,
)

MESSAGES = {
    0: MessageProfile(
        name="file_id",
        fields={
            0: FieldProfile(
                field_name="type",
                field_type="file",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="product",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="favero_product",
                        field_type="favero_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 263,
                                "value_name": "favero_electronics",
                                "field_name": "manufacturer",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="manufacturer",
                        ref_field_value="favero_electronics",
                    ),
                    SubField(
                        field_name="garmin_product",
                        field_type="garmin_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "garmin",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "dynastream",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "dynastream_oem",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 89,
                                "value_name": "tacx",
                                "field_name": "manufacturer",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=[
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                        ],
                        ref_field_value=[
                            "garmin",
                            "dynastream",
                            "dynastream_oem",
                            "tacx",
                        ],
                    ),
                ],
                comment=None,
            ),
            3: FieldProfile(
                field_name="serial_number",
                field_type="uint32z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="time_created",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Only set for files that are can be created/erased.",
            ),
            5: FieldProfile(
                field_name="number",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Only set for files that are not created/erased.",
            ),
            8: FieldProfile(
                field_name="product_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Optional free form string to "
                "indicate the devices name or "
                "model",
            ),
        },
        group=None,
    ),
    49: MessageProfile(
        name="file_creator",
        fields={
            0: FieldProfile(
                field_name="software_version",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="hardware_version",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group=None,
    ),
    162: MessageProfile(
        name="timestamp_correlation",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of UTC "
                "timestamp at the time the "
                "system timestamp was recorded.",
            ),
            0: FieldProfile(
                field_name="fractional_timestamp",
                field_type="uint16",
                array=False,
                components=None,
                scale=32768,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of the UTC "
                "timestamp at the time the system "
                "timestamp was recorded.",
            ),
            1: FieldProfile(
                field_name="system_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the system timestamp",
            ),
            2: FieldProfile(
                field_name="fractional_system_timestamp",
                field_type="uint16",
                array=False,
                components=None,
                scale=32768,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of the system timestamp",
            ),
            3: FieldProfile(
                field_name="local_timestamp",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="timestamp epoch expressed in "
                "local time used to convert "
                "timestamps to local time",
            ),
            4: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the UTC "
                "timestamp at the time the system "
                "timestamp was recorded.",
            ),
            5: FieldProfile(
                field_name="system_timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the system timestamp",
            ),
        },
        group=None,
    ),
    35: MessageProfile(
        name="software",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="version",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="part_number",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    106: MessageProfile(
        name="slave_device",
        fields={
            0: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="product",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="favero_product",
                        field_type="favero_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 263,
                                "value_name": "favero_electronics",
                                "field_name": "manufacturer",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="manufacturer",
                        ref_field_value="favero_electronics",
                    ),
                    SubField(
                        field_name="garmin_product",
                        field_type="garmin_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "garmin",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "dynastream",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "dynastream_oem",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 89,
                                "value_name": "tacx",
                                "field_name": "manufacturer",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=[
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                        ],
                        ref_field_value=[
                            "garmin",
                            "dynastream",
                            "dynastream_oem",
                            "tacx",
                        ],
                    ),
                ],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    1: MessageProfile(
        name="capabilities",
        fields={
            0: FieldProfile(
                field_name="languages",
                field_type="uint8z",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use language_bits_x types where x is index of array.",
            ),
            1: FieldProfile(
                field_name="sports",
                field_type="sport_bits_0",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use sport_bits_x types where x is index of array.",
            ),
            21: FieldProfile(
                field_name="workouts_supported",
                field_type="workout_capabilities",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="connectivity_supported",
                field_type="connectivity_capabilities",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    37: MessageProfile(
        name="file_capabilities",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="type",
                field_type="file",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="flags",
                field_type="file_flags",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="directory",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="max_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="max_size",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bytes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    38: MessageProfile(
        name="mesg_capabilities",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="file",
                field_type="file",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="mesg_num",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="count_type",
                field_type="mesg_count",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="num_per_file",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 2,
                                "value_number": 0,
                                "value_name": "num_per_file",
                                "field_name": "count_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="count_type",
                        ref_field_value="num_per_file",
                    ),
                    SubField(
                        field_name="max_per_file",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 2,
                                "value_number": 1,
                                "value_name": "max_per_file",
                                "field_name": "count_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="count_type",
                        ref_field_value="max_per_file",
                    ),
                    SubField(
                        field_name="max_per_file_type",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 2,
                                "value_number": 2,
                                "value_name": "max_per_file_type",
                                "field_name": "count_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="count_type",
                        ref_field_value="max_per_file_type",
                    ),
                ],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    39: MessageProfile(
        name="field_capabilities",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="file",
                field_type="file",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="mesg_num",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="field_num",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="DEVICE FILE MESSAGES",
    ),
    2: MessageProfile(
        name="device_settings",
        fields={
            0: FieldProfile(
                field_name="active_time_zone",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index into time zone arrays.",
            ),
            1: FieldProfile(
                field_name="utc_offset",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Offset from system time. Required "
                "to convert timestamp from system "
                "time to UTC.",
            ),
            2: FieldProfile(
                field_name="time_offset",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Offset from system time.",
            ),
            4: FieldProfile(
                field_name="time_mode",
                field_type="time_mode",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Display mode for the time",
            ),
            5: FieldProfile(
                field_name="time_zone_offset",
                field_type="sint8",
                array="N",
                components=None,
                scale=4,
                offset=None,
                units="hr",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="timezone offset in 1/4 hour increments",
            ),
            12: FieldProfile(
                field_name="backlight_mode",
                field_type="backlight_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Mode for backlight",
            ),
            36: FieldProfile(
                field_name="activity_tracker_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enabled state of the activity tracker functionality",
            ),
            39: FieldProfile(
                field_name="clock_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="UTC timestamp used to set the devices clock and date",
            ),
            40: FieldProfile(
                field_name="pages_enabled",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Bitfield to configure enabled screens for each supported loop",
            ),
            46: FieldProfile(
                field_name="move_alert_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enabled state of the move alert",
            ),
            47: FieldProfile(
                field_name="date_mode",
                field_type="date_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Display mode for the date",
            ),
            55: FieldProfile(
                field_name="display_orientation",
                field_type="display_orientation",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            56: FieldProfile(
                field_name="mounting_side",
                field_type="side",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            57: FieldProfile(
                field_name="default_page",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Bitfield to indicate one page as "
                "default for each supported loop",
            ),
            58: FieldProfile(
                field_name="autosync_min_steps",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="steps",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Minimum steps before an autosync can occur",
            ),
            59: FieldProfile(
                field_name="autosync_min_time",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="minutes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Minimum minutes before an autosync can occur",
            ),
            80: FieldProfile(
                field_name="lactate_threshold_autodetect_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enable auto-detect setting for the lactate threshold feature.",
            ),
            86: FieldProfile(
                field_name="ble_auto_upload_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Automatically upload using BLE",
            ),
            89: FieldProfile(
                field_name="auto_sync_frequency",
                field_type="auto_sync_frequency",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Helps to conserve battery by changing modes",
            ),
            90: FieldProfile(
                field_name="auto_activity_detect",
                field_type="auto_activity_detect",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Allows setting specific "
                "activities auto-activity detect "
                "enabled/disabled settings",
            ),
            94: FieldProfile(
                field_name="number_of_screens",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of screens configured to display",
            ),
            95: FieldProfile(
                field_name="smart_notification_display_orientation",
                field_type="display_orientation",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Smart Notification display orientation",
            ),
            134: FieldProfile(
                field_name="tap_interface",
                field_type="switch",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            174: FieldProfile(
                field_name="tap_sensitivity",
                field_type="tap_sensitivity",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Used to hold the tap threshold setting",
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    3: MessageProfile(
        name="user_profile",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="friendly_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Used for Morning Report greeting",
            ),
            1: FieldProfile(
                field_name="gender",
                field_type="gender",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="age",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="years",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="height",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="weight",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="language",
                field_type="language",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="elev_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="weight_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="resting_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="default_max_running_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="default_max_biking_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="default_max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="hr_setting",
                field_type="display_heart",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="speed_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="dist_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="power_setting",
                field_type="display_power",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="activity_class",
                field_type="activity_class",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            18: FieldProfile(
                field_name="position_setting",
                field_type="display_position",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="temperature_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="local_id",
                field_type="user_local_id",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="global_id",
                field_type="byte",
                array=6,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            28: FieldProfile(
                field_name="wake_time",
                field_type="localtime_into_day",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Typical wake time",
            ),
            29: FieldProfile(
                field_name="sleep_time",
                field_type="localtime_into_day",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Typical bed time",
            ),
            30: FieldProfile(
                field_name="height_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            31: FieldProfile(
                field_name="user_running_step_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="User defined running step length set to 0 for auto length",
            ),
            32: FieldProfile(
                field_name="user_walking_step_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="User defined walking step length set to 0 for auto length",
            ),
            47: FieldProfile(
                field_name="depth_setting",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            49: FieldProfile(
                field_name="dive_count",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    4: MessageProfile(
        name="hrm_profile",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="hrm_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="log_hrv",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="hrm_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    5: MessageProfile(
        name="sdm_profile",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="sdm_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="sdm_cal_factor",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="odometer",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="speed_source",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use footpod for speed source instead of GPS",
            ),
            5: FieldProfile(
                field_name="sdm_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="odometer_rollover",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Rollover counter that can be used to extend the odometer",
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    6: MessageProfile(
        name="bike_profile",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="odometer",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="bike_spd_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="bike_cad_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="bike_spdcad_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="bike_power_ant_id",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="custom_wheelsize",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="auto_wheelsize",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="bike_weight",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="power_cal_factor",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="auto_wheel_cal",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="auto_power_zero",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="id",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="spd_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="cad_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="spdcad_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            18: FieldProfile(
                field_name="power_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            19: FieldProfile(
                field_name="crank_length",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=-110,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            20: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="bike_spd_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="bike_cad_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="bike_spdcad_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="bike_power_ant_id_trans_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            37: FieldProfile(
                field_name="odometer_rollover",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Rollover counter that can be used to extend the odometer",
            ),
            38: FieldProfile(
                field_name="front_gear_num",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of front gears",
            ),
            39: FieldProfile(
                field_name="front_gear",
                field_type="uint8z",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of teeth on each gear 0 is innermost",
            ),
            40: FieldProfile(
                field_name="rear_gear_num",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of rear gears",
            ),
            41: FieldProfile(
                field_name="rear_gear",
                field_type="uint8z",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of teeth on each gear 0 is innermost",
            ),
            44: FieldProfile(
                field_name="shimano_di2_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    127: MessageProfile(
        name="connectivity",
        fields={
            0: FieldProfile(
                field_name="bluetooth_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use Bluetooth for connectivity features",
            ),
            1: FieldProfile(
                field_name="bluetooth_le_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use Bluetooth Low Energy for connectivity features",
            ),
            2: FieldProfile(
                field_name="ant_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use ANT for connectivity features",
            ),
            3: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="live_tracking_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="weather_conditions_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="weather_alerts_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="auto_activity_upload_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="course_download_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="workout_download_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="gps_ephemeris_download_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="incident_detection_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="grouptrack_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    159: MessageProfile(
        name="watchface_settings",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="mode",
                field_type="watchface_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="layout",
                field_type="byte",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="digital_layout",
                        field_type="digital_watchface_layout",
                        refs=[None],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="mode",
                        ref_field_value="digital",
                    ),
                    SubField(
                        field_name="analog_layout",
                        field_type="analog_watchface_layout",
                        refs=[None],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="mode",
                        ref_field_value="analog",
                    ),
                ],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    188: MessageProfile(
        name="ohr_settings",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="enabled",
                field_type="switch",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    216: MessageProfile(
        name="time_in_zone",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="reference_mesg",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="reference_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="time_in_hr_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="time_in_speed_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="time_in_cadence_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="time_in_power_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="hr_zone_high_boundary",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="speed_zone_high_boundary",
                field_type="uint16",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="cadence_zone_high_bondary",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="power_zone_high_boundary",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="hr_calc_type",
                field_type="hr_zone_calc",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="resting_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="threshold_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="pwr_calc_type",
                field_type="pwr_zone_calc",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="functional_threshold_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SETTINGS FILE MESSAGES",
    ),
    7: MessageProfile(
        name="zones_target",
        fields={
            1: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="threshold_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="functional_threshold_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="hr_calc_type",
                field_type="hr_zone_calc",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="pwr_calc_type",
                field_type="pwr_zone_calc",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    12: MessageProfile(
        name="sport",
        fields={
            0: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    8: MessageProfile(
        name="hr_zone",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="high_bpm",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    53: MessageProfile(
        name="speed_zone",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="high_value",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    131: MessageProfile(
        name="cadence_zone",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="high_value",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    9: MessageProfile(
        name="power_zone",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="high_value",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    10: MessageProfile(
        name="met_zone",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="high_bpm",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="kcal / min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="fat_calories",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="kcal / min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    258: MessageProfile(
        name="dive_settings",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="model",
                field_type="tissue_model_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="gf_low",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="gf_high",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="water_type",
                field_type="water_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="water_density",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kg/m^3",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fresh water is usually 1000; salt water is usually 1025",
            ),
            6: FieldProfile(
                field_name="po2_warn",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Typically 1.40",
            ),
            7: FieldProfile(
                field_name="po2_critical",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Typically 1.60",
            ),
            8: FieldProfile(
                field_name="po2_deco",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="safety_stop_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="bottom_depth",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="bottom_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="apnea_countdown_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="apnea_countdown_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="backlight_mode",
                field_type="dive_backlight_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="backlight_brightness",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="backlight_timeout",
                field_type="backlight_timeout",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="repeat_dive_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time between surfacing and ending the activity",
            ),
            18: FieldProfile(
                field_name="safety_stop_time",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time at safety stop (if enabled)",
            ),
            19: FieldProfile(
                field_name="heart_rate_source_type",
                field_type="source_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            20: FieldProfile(
                field_name="heart_rate_source",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="heart_rate_antplus_device_type",
                        field_type="antplus_device_type",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 1,
                                "value_name": "antplus",
                                "field_name": "heart_rate_source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="heart_rate_source_type",
                        ref_field_value="antplus",
                    ),
                    SubField(
                        field_name="heart_rate_local_device_type",
                        field_type="local_device_type",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 5,
                                "value_name": "local",
                                "field_name": "heart_rate_source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="heart_rate_source_type",
                        ref_field_value="local",
                    ),
                ],
                comment=None,
            ),
            21: FieldProfile(
                field_name="travel_gas",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index of travel dive_gas message",
            ),
            22: FieldProfile(
                field_name="ccr_low_setpoint_switch_mode",
                field_type="ccr_setpoint_switch_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="If low PO2 should be switched to automatically",
            ),
            23: FieldProfile(
                field_name="ccr_low_setpoint",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Target PO2 when using low setpoint",
            ),
            24: FieldProfile(
                field_name="ccr_low_setpoint_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Depth to switch to low setpoint in automatic mode",
            ),
            25: FieldProfile(
                field_name="ccr_high_setpoint_switch_mode",
                field_type="ccr_setpoint_switch_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="If high PO2 should be switched to automatically",
            ),
            26: FieldProfile(
                field_name="ccr_high_setpoint",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Target PO2 when using high setpoint",
            ),
            27: FieldProfile(
                field_name="ccr_high_setpoint_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Depth to switch to high setpoint in automatic mode",
            ),
            29: FieldProfile(
                field_name="gas_consumption_display",
                field_type="gas_consumption_rate_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Type of gas consumption rate to "
                "display. Some values are only "
                "valid if tank volume is known.",
            ),
            30: FieldProfile(
                field_name="up_key_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates whether the up key is enabled during dives",
            ),
            35: FieldProfile(
                field_name="dive_sounds",
                field_type="tone",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sounds and vibration enabled or disabled in-dive",
            ),
            36: FieldProfile(
                field_name="last_stop_multiple",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft",
            ),
            37: FieldProfile(
                field_name="no_fly_time_mode",
                field_type="no_fly_time_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates which guidelines to "
                "use for no-fly surface "
                "interval.",
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    262: MessageProfile(
        name="dive_alarm",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index of the alarm",
            ),
            0: FieldProfile(
                field_name="depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Depth setting (m) for depth type alarms",
            ),
            1: FieldProfile(
                field_name="time",
                field_type="sint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time setting (s) for time type alarms",
            ),
            2: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enablement flag",
            ),
            3: FieldProfile(
                field_name="alarm_type",
                field_type="dive_alarm_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Alarm type setting",
            ),
            4: FieldProfile(
                field_name="sound",
                field_type="tone",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Tone and Vibe setting for the alarm",
            ),
            5: FieldProfile(
                field_name="dive_types",
                field_type="sub_sport",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Dive types the alarm will trigger on",
            ),
            6: FieldProfile(
                field_name="id",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Alarm ID",
            ),
            7: FieldProfile(
                field_name="popup_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Show a visible pop-up for this alarm",
            ),
            8: FieldProfile(
                field_name="trigger_on_descent",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Trigger the alarm on descent",
            ),
            9: FieldProfile(
                field_name="trigger_on_ascent",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Trigger the alarm on ascent",
            ),
            10: FieldProfile(
                field_name="repeating",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Repeat alarm each time threshold is crossed?",
            ),
            11: FieldProfile(
                field_name="speed",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="mps",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Ascent/descent rate (mps) setting for speed type alarms",
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    393: MessageProfile(
        name="dive_apnea_alarm",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index of the alarm",
            ),
            0: FieldProfile(
                field_name="depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Depth setting (m) for depth type alarms",
            ),
            1: FieldProfile(
                field_name="time",
                field_type="sint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time setting (s) for time type alarms",
            ),
            2: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enablement flag",
            ),
            3: FieldProfile(
                field_name="alarm_type",
                field_type="dive_alarm_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Alarm type setting",
            ),
            4: FieldProfile(
                field_name="sound",
                field_type="tone",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Tone and Vibe setting for the alarm.",
            ),
            5: FieldProfile(
                field_name="dive_types",
                field_type="sub_sport",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Dive types the alarm will trigger on",
            ),
            6: FieldProfile(
                field_name="id",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Alarm ID",
            ),
            7: FieldProfile(
                field_name="popup_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Show a visible pop-up for this alarm",
            ),
            8: FieldProfile(
                field_name="trigger_on_descent",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Trigger the alarm on descent",
            ),
            9: FieldProfile(
                field_name="trigger_on_ascent",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Trigger the alarm on ascent",
            ),
            10: FieldProfile(
                field_name="repeating",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Repeat alarm each time threshold is crossed?",
            ),
            11: FieldProfile(
                field_name="speed",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="mps",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Ascent/descent rate (mps) setting for speed type alarms",
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    259: MessageProfile(
        name="dive_gas",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="helium_content",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="oxygen_content",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="status",
                field_type="dive_gas_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="mode",
                field_type="dive_gas_mode",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SPORT SETTINGS FILE MESSAGES",
    ),
    15: MessageProfile(
        name="goal",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="start_date",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="end_date",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="type",
                field_type="goal",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="value",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="repeat",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="target_value",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="recurrence",
                field_type="goal_recurrence",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="recurrence_value",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="source",
                field_type="goal_source",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="GOALS FILE MESSAGES",
    ),
    34: MessageProfile(
        name="activity",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Exclude pauses",
            ),
            1: FieldProfile(
                field_name="num_sessions",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="type",
                field_type="activity",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="local_timestamp",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="timestamp epoch expressed in "
                "local time, used to convert "
                "activity timestamps to local time",
            ),
            6: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    18: MessageProfile(
        name="session",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Selected bit is set for the current session.",
            ),
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sesson end time.",
            ),
            0: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="session",
            ),
            1: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="stop",
            ),
            2: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="start_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="start_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="total_elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time (includes pauses)",
            ),
            8: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timer Time (excludes pauses)",
            ),
            9: FieldProfile(
                field_name="total_distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="total_cycles",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="total_strides",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 11,
                                "value_name": "walking",
                                "field_name": "sport",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["sport", "sport"],
                        ref_field_value=["running", "walking"],
                    ),
                    SubField(
                        field_name="total_strokes",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 2,
                                "value_name": "cycling",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 5,
                                "value_name": "swimming",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 15,
                                "value_name": "rowing",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 37,
                                "value_name": "stand_up_paddleboarding",
                                "field_name": "sport",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strokes",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["sport", "sport", "sport", "sport"],
                        ref_field_value=[
                            "cycling",
                            "swimming",
                            "rowing",
                            "stand_up_paddleboarding",
                        ],
                    ),
                ],
                comment=None,
            ),
            11: FieldProfile(
                field_name="total_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="total_fat_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="avg_speed",
                field_type="uint16",
                array=False,
                components="enhanced_avg_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment="total_distance / total_timer_time",
            ),
            15: FieldProfile(
                field_name="max_speed",
                field_type="uint16",
                array=False,
                components="enhanced_max_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="avg_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="average heart rate (excludes pause time)",
            ),
            17: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            18: FieldProfile(
                field_name="avg_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="avg_running_cadence",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides/min",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="sport",
                        ref_field_value="running",
                    )
                ],
                comment="total_cycles / total_timer_time "
                "if non_zero_avg_cadence "
                "otherwise total_cycles / "
                "total_elapsed_time",
            ),
            19: FieldProfile(
                field_name="max_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="max_running_cadence",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides/min",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="sport",
                        ref_field_value="running",
                    )
                ],
                comment=None,
            ),
            20: FieldProfile(
                field_name="avg_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="total_power / total_timer_time "
                "if non_zero_avg_power otherwise "
                "total_power / total_elapsed_time",
            ),
            21: FieldProfile(
                field_name="max_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="total_ascent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="total_descent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="total_training_effect",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="first_lap_index",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            26: FieldProfile(
                field_name="num_laps",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            27: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            28: FieldProfile(
                field_name="trigger",
                field_type="session_trigger",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            29: FieldProfile(
                field_name="nec_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="North east corner latitude",
            ),
            30: FieldProfile(
                field_name="nec_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="North east corner longitude",
            ),
            31: FieldProfile(
                field_name="swc_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="South west corner latitude",
            ),
            32: FieldProfile(
                field_name="swc_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="South west corner longitude",
            ),
            33: FieldProfile(
                field_name="num_lengths",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="lengths",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="# of lengths of swim pool",
            ),
            34: FieldProfile(
                field_name="normalized_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            35: FieldProfile(
                field_name="training_stress_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="tss",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            36: FieldProfile(
                field_name="intensity_factor",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="if",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            37: FieldProfile(
                field_name="left_right_balance",
                field_type="left_right_balance_100",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            38: FieldProfile(
                field_name="end_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            39: FieldProfile(
                field_name="end_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            41: FieldProfile(
                field_name="avg_stroke_count",
                field_type="uint32",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="strokes/lap",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            42: FieldProfile(
                field_name="avg_stroke_distance",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            43: FieldProfile(
                field_name="swim_stroke",
                field_type="swim_stroke",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="swim_stroke",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            44: FieldProfile(
                field_name="pool_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            45: FieldProfile(
                field_name="threshold_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            46: FieldProfile(
                field_name="pool_length_unit",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            47: FieldProfile(
                field_name="num_active_lengths",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="lengths",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="# of active lengths of swim pool",
            ),
            48: FieldProfile(
                field_name="total_work",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="J",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            49: FieldProfile(
                field_name="avg_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_avg_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            50: FieldProfile(
                field_name="max_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_max_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            51: FieldProfile(
                field_name="gps_accuracy",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            52: FieldProfile(
                field_name="avg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            53: FieldProfile(
                field_name="avg_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            54: FieldProfile(
                field_name="avg_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            55: FieldProfile(
                field_name="max_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            56: FieldProfile(
                field_name="max_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            57: FieldProfile(
                field_name="avg_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            58: FieldProfile(
                field_name="max_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            59: FieldProfile(
                field_name="total_moving_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            60: FieldProfile(
                field_name="avg_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            61: FieldProfile(
                field_name="avg_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            62: FieldProfile(
                field_name="max_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            63: FieldProfile(
                field_name="max_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            64: FieldProfile(
                field_name="min_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            65: FieldProfile(
                field_name="time_in_hr_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            66: FieldProfile(
                field_name="time_in_speed_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            67: FieldProfile(
                field_name="time_in_cadence_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            68: FieldProfile(
                field_name="time_in_power_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            69: FieldProfile(
                field_name="avg_lap_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            70: FieldProfile(
                field_name="best_lap_index",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            71: FieldProfile(
                field_name="min_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_min_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            82: FieldProfile(
                field_name="player_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            83: FieldProfile(
                field_name="opponent_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            84: FieldProfile(
                field_name="opponent_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            85: FieldProfile(
                field_name="stroke_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="stroke_type enum used as the index",
            ),
            86: FieldProfile(
                field_name="zone_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="zone number used as the index",
            ),
            87: FieldProfile(
                field_name="max_ball_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            88: FieldProfile(
                field_name="avg_ball_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            89: FieldProfile(
                field_name="avg_vertical_oscillation",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            90: FieldProfile(
                field_name="avg_stance_time_percent",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            91: FieldProfile(
                field_name="avg_stance_time",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            92: FieldProfile(
                field_name="avg_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the avg_cadence",
            ),
            93: FieldProfile(
                field_name="max_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the max_cadence",
            ),
            94: FieldProfile(
                field_name="total_fractional_cycles",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the total_cycles",
            ),
            95: FieldProfile(
                field_name="avg_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Avg saturated and unsaturated hemoglobin",
            ),
            96: FieldProfile(
                field_name="min_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min saturated and unsaturated hemoglobin",
            ),
            97: FieldProfile(
                field_name="max_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max saturated and unsaturated hemoglobin",
            ),
            98: FieldProfile(
                field_name="avg_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Avg percentage of hemoglobin saturated with oxygen",
            ),
            99: FieldProfile(
                field_name="min_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min percentage of hemoglobin saturated with oxygen",
            ),
            100: FieldProfile(
                field_name="max_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max percentage of hemoglobin saturated with oxygen",
            ),
            101: FieldProfile(
                field_name="avg_left_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            102: FieldProfile(
                field_name="avg_right_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            103: FieldProfile(
                field_name="avg_left_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            104: FieldProfile(
                field_name="avg_right_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            105: FieldProfile(
                field_name="avg_combined_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            110: FieldProfile(
                field_name="sport_profile_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sport name from associated sport mesg",
            ),
            111: FieldProfile(
                field_name="sport_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            112: FieldProfile(
                field_name="time_standing",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total time spend in the standing position",
            ),
            113: FieldProfile(
                field_name="stand_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of transitions to the standing state",
            ),
            114: FieldProfile(
                field_name="avg_left_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average platform center offset Left",
            ),
            115: FieldProfile(
                field_name="avg_right_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average platform center offset Right",
            ),
            116: FieldProfile(
                field_name="avg_left_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase "
                "angles. Indexes defined by "
                "power_phase_type.",
            ),
            117: FieldProfile(
                field_name="avg_left_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase peak "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            118: FieldProfile(
                field_name="avg_right_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            119: FieldProfile(
                field_name="avg_right_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase peak "
                "angles data value indexes "
                "defined by power_phase_type.",
            ),
            120: FieldProfile(
                field_name="avg_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            121: FieldProfile(
                field_name="max_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            122: FieldProfile(
                field_name="avg_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            123: FieldProfile(
                field_name="max_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            124: FieldProfile(
                field_name="enhanced_avg_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="total_distance / total_timer_time",
            ),
            125: FieldProfile(
                field_name="enhanced_max_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            126: FieldProfile(
                field_name="enhanced_avg_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            127: FieldProfile(
                field_name="enhanced_min_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            128: FieldProfile(
                field_name="enhanced_max_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            129: FieldProfile(
                field_name="avg_lev_motor_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev average motor power during session",
            ),
            130: FieldProfile(
                field_name="max_lev_motor_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev maximum motor power during session",
            ),
            131: FieldProfile(
                field_name="lev_battery_consumption",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev battery consumption during session",
            ),
            132: FieldProfile(
                field_name="avg_vertical_ratio",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            133: FieldProfile(
                field_name="avg_stance_time_balance",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            134: FieldProfile(
                field_name="avg_step_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            137: FieldProfile(
                field_name="total_anaerobic_training_effect",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            139: FieldProfile(
                field_name="avg_vam",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            140: FieldProfile(
                field_name="avg_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            141: FieldProfile(
                field_name="max_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            142: FieldProfile(
                field_name="surface_interval",
                field_type="uint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time since end of last dive",
            ),
            143: FieldProfile(
                field_name="start_cns",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            144: FieldProfile(
                field_name="end_cns",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            145: FieldProfile(
                field_name="start_n2",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            146: FieldProfile(
                field_name="end_n2",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            147: FieldProfile(
                field_name="avg_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_avg_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            148: FieldProfile(
                field_name="max_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_max_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            149: FieldProfile(
                field_name="min_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_min_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            150: FieldProfile(
                field_name="min_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            155: FieldProfile(
                field_name="o2_toxicity",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="OTUs",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            156: FieldProfile(
                field_name="dive_number",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            168: FieldProfile(
                field_name="training_load_peak",
                field_type="sint32",
                array=False,
                components=None,
                scale=65536,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            169: FieldProfile(
                field_name="enhanced_avg_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            170: FieldProfile(
                field_name="enhanced_max_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            180: FieldProfile(
                field_name="enhanced_min_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            181: FieldProfile(
                field_name="total_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            182: FieldProfile(
                field_name="total_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            183: FieldProfile(
                field_name="jump_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            186: FieldProfile(
                field_name="avg_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            187: FieldProfile(
                field_name="avg_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            192: FieldProfile(
                field_name="workout_feel",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="A 0-100 scale representing how "
                "a user felt while performing a "
                "workout. Low values are "
                "considered feeling bad, while "
                "high values are good.",
            ),
            193: FieldProfile(
                field_name="workout_rpe",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Common Borg CR10 / 0-10 RPE "
                "scale, multiplied 10x.. "
                "Aggregate score for all "
                "workouts in a single session.",
            ),
            194: FieldProfile(
                field_name="avg_spo2",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average SPO2 for the monitoring session",
            ),
            195: FieldProfile(
                field_name="avg_stress",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average stress for the monitoring session",
            ),
            197: FieldProfile(
                field_name="sdrr_hrv",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mS",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Standard deviation of R-R "
                "interval (SDRR) - Heart rate "
                "variability measure most useful "
                "for wellness users.",
            ),
            198: FieldProfile(
                field_name="rmssd_hrv",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mS",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Root mean square successive "
                "difference (RMSSD) - Heart rate "
                "variability measure most useful "
                "for athletes",
            ),
            199: FieldProfile(
                field_name="total_fractional_ascent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_ascent",
            ),
            200: FieldProfile(
                field_name="total_fractional_descent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_descent",
            ),
            208: FieldProfile(
                field_name="avg_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            209: FieldProfile(
                field_name="min_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            210: FieldProfile(
                field_name="max_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    19: MessageProfile(
        name="lap",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Lap end time.",
            ),
            0: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="start_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="start_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="end_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="end_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="total_elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time (includes pauses)",
            ),
            8: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timer Time (excludes pauses)",
            ),
            9: FieldProfile(
                field_name="total_distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="total_cycles",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="total_strides",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 11,
                                "value_name": "walking",
                                "field_name": "sport",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["sport", "sport"],
                        ref_field_value=["running", "walking"],
                    ),
                    SubField(
                        field_name="total_strokes",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 2,
                                "value_name": "cycling",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 5,
                                "value_name": "swimming",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 15,
                                "value_name": "rowing",
                                "field_name": "sport",
                            },
                            {
                                "field_number": 5,
                                "value_number": 37,
                                "value_name": "stand_up_paddleboarding",
                                "field_name": "sport",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strokes",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["sport", "sport", "sport", "sport"],
                        ref_field_value=[
                            "cycling",
                            "swimming",
                            "rowing",
                            "stand_up_paddleboarding",
                        ],
                    ),
                ],
                comment=None,
            ),
            11: FieldProfile(
                field_name="total_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="total_fat_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="If New Leaf",
            ),
            13: FieldProfile(
                field_name="avg_speed",
                field_type="uint16",
                array=False,
                components="enhanced_avg_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="max_speed",
                field_type="uint16",
                array=False,
                components="enhanced_max_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="avg_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="avg_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="avg_running_cadence",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides/min",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="sport",
                        ref_field_value="running",
                    )
                ],
                comment="total_cycles / total_timer_time "
                "if non_zero_avg_cadence "
                "otherwise total_cycles / "
                "total_elapsed_time",
            ),
            18: FieldProfile(
                field_name="max_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="max_running_cadence",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "sport",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strides/min",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="sport",
                        ref_field_value="running",
                    )
                ],
                comment=None,
            ),
            19: FieldProfile(
                field_name="avg_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="total_power / total_timer_time "
                "if non_zero_avg_power otherwise "
                "total_power / total_elapsed_time",
            ),
            20: FieldProfile(
                field_name="max_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="total_ascent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="total_descent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="intensity",
                field_type="intensity",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="lap_trigger",
                field_type="lap_trigger",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            26: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            32: FieldProfile(
                field_name="num_lengths",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="lengths",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="# of lengths of swim pool",
            ),
            33: FieldProfile(
                field_name="normalized_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            34: FieldProfile(
                field_name="left_right_balance",
                field_type="left_right_balance_100",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            35: FieldProfile(
                field_name="first_length_index",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            37: FieldProfile(
                field_name="avg_stroke_distance",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            38: FieldProfile(
                field_name="swim_stroke",
                field_type="swim_stroke",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            39: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            40: FieldProfile(
                field_name="num_active_lengths",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="lengths",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="# of active lengths of swim pool",
            ),
            41: FieldProfile(
                field_name="total_work",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="J",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            42: FieldProfile(
                field_name="avg_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_avg_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            43: FieldProfile(
                field_name="max_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_max_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            44: FieldProfile(
                field_name="gps_accuracy",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            45: FieldProfile(
                field_name="avg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            46: FieldProfile(
                field_name="avg_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            47: FieldProfile(
                field_name="avg_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            48: FieldProfile(
                field_name="max_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            49: FieldProfile(
                field_name="max_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            50: FieldProfile(
                field_name="avg_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            51: FieldProfile(
                field_name="max_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            52: FieldProfile(
                field_name="total_moving_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            53: FieldProfile(
                field_name="avg_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            54: FieldProfile(
                field_name="avg_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            55: FieldProfile(
                field_name="max_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            56: FieldProfile(
                field_name="max_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            57: FieldProfile(
                field_name="time_in_hr_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            58: FieldProfile(
                field_name="time_in_speed_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            59: FieldProfile(
                field_name="time_in_cadence_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            60: FieldProfile(
                field_name="time_in_power_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            61: FieldProfile(
                field_name="repetition_num",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            62: FieldProfile(
                field_name="min_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_min_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            63: FieldProfile(
                field_name="min_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            71: FieldProfile(
                field_name="wkt_step_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            74: FieldProfile(
                field_name="opponent_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            75: FieldProfile(
                field_name="stroke_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="stroke_type enum used as the index",
            ),
            76: FieldProfile(
                field_name="zone_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="zone number used as the index",
            ),
            77: FieldProfile(
                field_name="avg_vertical_oscillation",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            78: FieldProfile(
                field_name="avg_stance_time_percent",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            79: FieldProfile(
                field_name="avg_stance_time",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            80: FieldProfile(
                field_name="avg_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the avg_cadence",
            ),
            81: FieldProfile(
                field_name="max_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the max_cadence",
            ),
            82: FieldProfile(
                field_name="total_fractional_cycles",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the total_cycles",
            ),
            83: FieldProfile(
                field_name="player_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            84: FieldProfile(
                field_name="avg_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Avg saturated and unsaturated hemoglobin",
            ),
            85: FieldProfile(
                field_name="min_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min saturated and unsaturated hemoglobin",
            ),
            86: FieldProfile(
                field_name="max_total_hemoglobin_conc",
                field_type="uint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max saturated and unsaturated hemoglobin",
            ),
            87: FieldProfile(
                field_name="avg_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Avg percentage of hemoglobin saturated with oxygen",
            ),
            88: FieldProfile(
                field_name="min_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min percentage of hemoglobin saturated with oxygen",
            ),
            89: FieldProfile(
                field_name="max_saturated_hemoglobin_percent",
                field_type="uint16",
                array="N",
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max percentage of hemoglobin saturated with oxygen",
            ),
            91: FieldProfile(
                field_name="avg_left_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            92: FieldProfile(
                field_name="avg_right_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            93: FieldProfile(
                field_name="avg_left_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            94: FieldProfile(
                field_name="avg_right_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            95: FieldProfile(
                field_name="avg_combined_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            98: FieldProfile(
                field_name="time_standing",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total time spent in the standing position",
            ),
            99: FieldProfile(
                field_name="stand_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of transitions to the standing state",
            ),
            100: FieldProfile(
                field_name="avg_left_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left platform center offset",
            ),
            101: FieldProfile(
                field_name="avg_right_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right platform center offset",
            ),
            102: FieldProfile(
                field_name="avg_left_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            103: FieldProfile(
                field_name="avg_left_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase peak "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            104: FieldProfile(
                field_name="avg_right_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            105: FieldProfile(
                field_name="avg_right_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase peak "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            106: FieldProfile(
                field_name="avg_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            107: FieldProfile(
                field_name="max_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            108: FieldProfile(
                field_name="avg_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            109: FieldProfile(
                field_name="max_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            110: FieldProfile(
                field_name="enhanced_avg_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            111: FieldProfile(
                field_name="enhanced_max_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            112: FieldProfile(
                field_name="enhanced_avg_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            113: FieldProfile(
                field_name="enhanced_min_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            114: FieldProfile(
                field_name="enhanced_max_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            115: FieldProfile(
                field_name="avg_lev_motor_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev average motor power during lap",
            ),
            116: FieldProfile(
                field_name="max_lev_motor_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev maximum motor power during lap",
            ),
            117: FieldProfile(
                field_name="lev_battery_consumption",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev battery consumption during lap",
            ),
            118: FieldProfile(
                field_name="avg_vertical_ratio",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            119: FieldProfile(
                field_name="avg_stance_time_balance",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            120: FieldProfile(
                field_name="avg_step_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            121: FieldProfile(
                field_name="avg_vam",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            122: FieldProfile(
                field_name="avg_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            123: FieldProfile(
                field_name="max_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            124: FieldProfile(
                field_name="min_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            136: FieldProfile(
                field_name="enhanced_avg_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            137: FieldProfile(
                field_name="enhanced_max_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            147: FieldProfile(
                field_name="avg_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_avg_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            148: FieldProfile(
                field_name="max_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_max_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            149: FieldProfile(
                field_name="total_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            150: FieldProfile(
                field_name="total_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            151: FieldProfile(
                field_name="jump_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            153: FieldProfile(
                field_name="avg_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            154: FieldProfile(
                field_name="avg_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            156: FieldProfile(
                field_name="total_fractional_ascent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_ascent",
            ),
            157: FieldProfile(
                field_name="total_fractional_descent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_descent",
            ),
            158: FieldProfile(
                field_name="avg_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            159: FieldProfile(
                field_name="min_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            160: FieldProfile(
                field_name="max_core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    101: MessageProfile(
        name="length",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="total_elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="total_strokes",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="strokes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="avg_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="swim_stroke",
                field_type="swim_stroke",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="swim_stroke",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="avg_swimming_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="strokes/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="total_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="length_type",
                field_type="length_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            18: FieldProfile(
                field_name="player_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            19: FieldProfile(
                field_name="opponent_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            20: FieldProfile(
                field_name="stroke_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="stroke_type enum used as the index",
            ),
            21: FieldProfile(
                field_name="zone_count",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="zone number used as the index",
            ),
            22: FieldProfile(
                field_name="enhanced_avg_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="enhanced_max_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="avg_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_avg_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="max_respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_max_respiration_rate",
                scale=None,
                offset=None,
                units=None,
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    20: MessageProfile(
        name="record",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="altitude",
                field_type="uint16",
                array=False,
                components="enhanced_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="speed",
                field_type="uint16",
                array=False,
                components="enhanced_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="compressed_speed_distance",
                field_type="byte",
                array=3,
                components=["speed", "distance"],
                scale=[100, 16],
                offset=None,
                units="m/s,m",
                bits="12,12",
                accumulate=[0, 1],
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="resistance",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Relative. 0 is none 254 is Max.",
            ),
            11: FieldProfile(
                field_name="time_from_course",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="cycle_length",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="speed_1s",
                field_type="uint8",
                array="N",
                components=None,
                scale=16,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Speed at 1s intervals. Timestamp "
                "field indicates time of last "
                "array element.",
            ),
            18: FieldProfile(
                field_name="cycles",
                field_type="uint8",
                array=False,
                components="total_cycles",
                scale=None,
                offset=None,
                units="cycles",
                bits=8,
                accumulate=1,
                subfields=[],
                comment=None,
            ),
            19: FieldProfile(
                field_name="total_cycles",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            28: FieldProfile(
                field_name="compressed_accumulated_power",
                field_type="uint16",
                array=False,
                components="accumulated_power",
                scale=None,
                offset=None,
                units="watts",
                bits=16,
                accumulate=1,
                subfields=[],
                comment=None,
            ),
            29: FieldProfile(
                field_name="accumulated_power",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            30: FieldProfile(
                field_name="left_right_balance",
                field_type="left_right_balance",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            31: FieldProfile(
                field_name="gps_accuracy",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            32: FieldProfile(
                field_name="vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            33: FieldProfile(
                field_name="calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            39: FieldProfile(
                field_name="vertical_oscillation",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            40: FieldProfile(
                field_name="stance_time_percent",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            41: FieldProfile(
                field_name="stance_time",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            42: FieldProfile(
                field_name="activity_type",
                field_type="activity_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            43: FieldProfile(
                field_name="left_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            44: FieldProfile(
                field_name="right_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            45: FieldProfile(
                field_name="left_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            46: FieldProfile(
                field_name="right_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            47: FieldProfile(
                field_name="combined_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            48: FieldProfile(
                field_name="time128",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            49: FieldProfile(
                field_name="stroke_type",
                field_type="stroke_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            50: FieldProfile(
                field_name="zone",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            51: FieldProfile(
                field_name="ball_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            52: FieldProfile(
                field_name="cadence256",
                field_type="uint16",
                array=False,
                components=None,
                scale=256,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Log cadence and fractional "
                "cadence for backwards "
                "compatability",
            ),
            53: FieldProfile(
                field_name="fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            54: FieldProfile(
                field_name="total_hemoglobin_conc",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total saturated and unsaturated hemoglobin",
            ),
            55: FieldProfile(
                field_name="total_hemoglobin_conc_min",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min saturated and unsaturated hemoglobin",
            ),
            56: FieldProfile(
                field_name="total_hemoglobin_conc_max",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="g/dL",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max saturated and unsaturated hemoglobin",
            ),
            57: FieldProfile(
                field_name="saturated_hemoglobin_percent",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Percentage of hemoglobin saturated with oxygen",
            ),
            58: FieldProfile(
                field_name="saturated_hemoglobin_percent_min",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min percentage of hemoglobin saturated with oxygen",
            ),
            59: FieldProfile(
                field_name="saturated_hemoglobin_percent_max",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max percentage of hemoglobin saturated with oxygen",
            ),
            62: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            67: FieldProfile(
                field_name="left_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Left platform center offset",
            ),
            68: FieldProfile(
                field_name="right_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Right platform center offset",
            ),
            69: FieldProfile(
                field_name="left_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Left power phase angles. Data "
                "value indexes defined by "
                "power_phase_type.",
            ),
            70: FieldProfile(
                field_name="left_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Left power phase peak angles. "
                "Data value indexes defined by "
                "power_phase_type.",
            ),
            71: FieldProfile(
                field_name="right_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Right power phase angles. Data "
                "value indexes defined by "
                "power_phase_type.",
            ),
            72: FieldProfile(
                field_name="right_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Right power phase peak angles. "
                "Data value indexes defined by "
                "power_phase_type.",
            ),
            73: FieldProfile(
                field_name="enhanced_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            78: FieldProfile(
                field_name="enhanced_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            81: FieldProfile(
                field_name="battery_soc",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev battery state of charge",
            ),
            82: FieldProfile(
                field_name="motor_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="lev motor power",
            ),
            83: FieldProfile(
                field_name="vertical_ratio",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            84: FieldProfile(
                field_name="stance_time_balance",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            85: FieldProfile(
                field_name="step_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            87: FieldProfile(
                field_name="cycle_length16",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Supports larger cycle sizes "
                "needed for paddlesports. Max "
                "cycle size: 655.35",
            ),
            91: FieldProfile(
                field_name="absolute_pressure",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Pa",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Includes atmospheric pressure",
            ),
            92: FieldProfile(
                field_name="depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            93: FieldProfile(
                field_name="next_stop_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            94: FieldProfile(
                field_name="next_stop_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            95: FieldProfile(
                field_name="time_to_surface",
                field_type="uint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            96: FieldProfile(
                field_name="ndl_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            97: FieldProfile(
                field_name="cns_load",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            98: FieldProfile(
                field_name="n2_load",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            99: FieldProfile(
                field_name="respiration_rate",
                field_type="uint8",
                array=False,
                components="enhanced_respiration_rate",
                scale=1,
                offset=None,
                units="s",
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            108: FieldProfile(
                field_name="enhanced_respiration_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="Breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            114: FieldProfile(
                field_name="grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            115: FieldProfile(
                field_name="flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            116: FieldProfile(
                field_name="current_stress",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Current Stress value",
            ),
            117: FieldProfile(
                field_name="ebike_travel_range",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="km",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            118: FieldProfile(
                field_name="ebike_battery_level",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            119: FieldProfile(
                field_name="ebike_assist_mode",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="depends on sensor",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            120: FieldProfile(
                field_name="ebike_assist_level_percent",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            123: FieldProfile(
                field_name="air_time_remaining",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            124: FieldProfile(
                field_name="pressure_sac",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="bar/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Pressure-based surface air consumption",
            ),
            125: FieldProfile(
                field_name="volume_sac",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="L/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Volumetric surface air consumption",
            ),
            126: FieldProfile(
                field_name="rmv",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="L/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Respiratory minute volume",
            ),
            127: FieldProfile(
                field_name="ascent_rate",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            129: FieldProfile(
                field_name="po2",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Current partial pressure of oxygen",
            ),
            139: FieldProfile(
                field_name="core_temperature",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    21: MessageProfile(
        name="event",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="data16",
                field_type="uint16",
                array=False,
                components="data",
                scale=None,
                offset=None,
                units=None,
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="data",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="timer_trigger",
                        field_type="timer_trigger",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 0,
                                "value_name": "timer",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="timer",
                    ),
                    SubField(
                        field_name="course_point_index",
                        field_type="message_index",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 10,
                                "value_name": "course_point",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="course_point",
                    ),
                    SubField(
                        field_name="battery_level",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 11,
                                "value_name": "battery",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="V",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="battery",
                    ),
                    SubField(
                        field_name="virtual_partner_speed",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 12,
                                "value_name": "virtual_partner_pace",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="virtual_partner_pace",
                    ),
                    SubField(
                        field_name="hr_high_alert",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "hr_high_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="hr_high_alert",
                    ),
                    SubField(
                        field_name="hr_low_alert",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 14,
                                "value_name": "hr_low_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="hr_low_alert",
                    ),
                    SubField(
                        field_name="speed_high_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "speed_high_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="speed_high_alert",
                    ),
                    SubField(
                        field_name="speed_low_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 16,
                                "value_name": "speed_low_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="speed_low_alert",
                    ),
                    SubField(
                        field_name="cad_high_alert",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 17,
                                "value_name": "cad_high_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="cad_high_alert",
                    ),
                    SubField(
                        field_name="cad_low_alert",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 18,
                                "value_name": "cad_low_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="cad_low_alert",
                    ),
                    SubField(
                        field_name="power_high_alert",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 19,
                                "value_name": "power_high_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="power_high_alert",
                    ),
                    SubField(
                        field_name="power_low_alert",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 20,
                                "value_name": "power_low_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="power_low_alert",
                    ),
                    SubField(
                        field_name="time_duration_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 23,
                                "value_name": "time_duration_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="time_duration_alert",
                    ),
                    SubField(
                        field_name="distance_duration_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 24,
                                "value_name": "distance_duration_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=100,
                        offset=None,
                        units="m",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="distance_duration_alert",
                    ),
                    SubField(
                        field_name="calorie_duration_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 25,
                                "value_name": "calorie_duration_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="calories",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="calorie_duration_alert",
                    ),
                    SubField(
                        field_name="fitness_equipment_state",
                        field_type="fitness_equipment_state",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 27,
                                "value_name": "fitness_equipment",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="fitness_equipment",
                    ),
                    SubField(
                        field_name="sport_point",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 33,
                                "value_name": "sport_point",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=["score", "opponent_score"],
                        scale=[1, 1],
                        offset=None,
                        units=None,
                        bits="16,16",
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="sport_point",
                    ),
                    SubField(
                        field_name="gear_change_data",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 42,
                                "value_name": "front_gear_change",
                                "field_name": "event",
                            },
                            {
                                "field_number": 0,
                                "value_number": 43,
                                "value_name": "rear_gear_change",
                                "field_name": "event",
                            },
                        ],
                        array=False,
                        components=[
                            "rear_gear_num",
                            "rear_gear",
                            "front_gear_num",
                            "front_gear",
                        ],
                        scale=[1, 1, 1, 1],
                        offset=None,
                        units=None,
                        bits="8,8,8,8",
                        accumulate=None,
                        comment=None,
                        ref_field_name=["event", "event"],
                        ref_field_value=["front_gear_change", "rear_gear_change"],
                    ),
                    SubField(
                        field_name="rider_position",
                        field_type="rider_position_type",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 44,
                                "value_name": "rider_position_change",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="Indicates the rider position value.",
                        ref_field_name="event",
                        ref_field_value="rider_position_change",
                    ),
                    SubField(
                        field_name="comm_timeout",
                        field_type="comm_timeout_type",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 47,
                                "value_name": "comm_timeout",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="comm_timeout",
                    ),
                    SubField(
                        field_name="dive_alert",
                        field_type="dive_alert",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 56,
                                "value_name": "dive_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="dive_alert",
                    ),
                    SubField(
                        field_name="auto_activity_detect_duration",
                        field_type="uint16",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 54,
                                "value_name": "auto_activity_detect",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="min",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="event",
                        ref_field_value="auto_activity_detect",
                    ),
                    SubField(
                        field_name="radar_threat_alert",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 75,
                                "value_name": "radar_threat_alert",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=[
                            "radar_threat_level_max",
                            "radar_threat_count",
                            "radar_threat_avg_approach_speed",
                            "radar_threat_max_approach_speed",
                        ],
                        scale=[1, 1, 10, 10],
                        offset=None,
                        units=None,
                        bits="8,8,8,8",
                        accumulate=None,
                        comment="The first "
                        "byte is the "
                        "radar_threat_level_max, "
                        "the second "
                        "byte is the "
                        "radar_threat_count, "
                        "third bytes "
                        "is the "
                        "average "
                        "approach "
                        "speed, and "
                        "the 4th byte "
                        "is the max "
                        "approach "
                        "speed",
                        ref_field_name="event",
                        ref_field_value="radar_threat_alert",
                    ),
                ],
                comment=None,
            ),
            4: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "sport_point subfield components",
            ),
            8: FieldProfile(
                field_name="opponent_score",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "sport_point subfield components",
            ),
            9: FieldProfile(
                field_name="front_gear_num",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "gear_change subfield components. "
                "Front gear number. 1 is "
                "innermost.",
            ),
            10: FieldProfile(
                field_name="front_gear",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "gear_change subfield components. "
                "Number of front teeth.",
            ),
            11: FieldProfile(
                field_name="rear_gear_num",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "gear_change subfield components. "
                "Rear gear number. 1 is "
                "innermost.",
            ),
            12: FieldProfile(
                field_name="rear_gear",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "gear_change subfield components. "
                "Number of rear teeth.",
            ),
            13: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="activity_type",
                field_type="activity_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Activity Type associated with an auto_activity_detect event",
            ),
            15: FieldProfile(
                field_name="start_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="auto_activity_detect_start_timestamp",
                        field_type="date_time",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 54,
                                "value_name": "auto_activity_detect",
                                "field_name": "event",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="s",
                        bits=None,
                        accumulate=None,
                        comment="Auto Activity Detect Start Timestamp.",
                        ref_field_name="event",
                        ref_field_value="auto_activity_detect",
                    )
                ],
                comment="Timestamp of when the event started",
            ),
            21: FieldProfile(
                field_name="radar_threat_level_max",
                field_type="radar_threat_level_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "threat_alert subfield "
                "components.",
            ),
            22: FieldProfile(
                field_name="radar_threat_count",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "threat_alert subfield "
                "components.",
            ),
            23: FieldProfile(
                field_name="radar_threat_avg_approach_speed",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "radar_threat_alert subfield "
                "components",
            ),
            24: FieldProfile(
                field_name="radar_threat_max_approach_speed",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Do not populate directly. "
                "Autogenerated by decoder for "
                "radar_threat_alert subfield "
                "components",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    23: MessageProfile(
        name="device_info",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="device_type",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="ble_device_type",
                        field_type="ble_device_type",
                        refs=[
                            {
                                "field_number": 25,
                                "value_number": 3,
                                "value_name": "bluetooth_low_energy",
                                "field_name": "source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="source_type",
                        ref_field_value="bluetooth_low_energy",
                    ),
                    SubField(
                        field_name="antplus_device_type",
                        field_type="antplus_device_type",
                        refs=[
                            {
                                "field_number": 25,
                                "value_number": 1,
                                "value_name": "antplus",
                                "field_name": "source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="source_type",
                        ref_field_value="antplus",
                    ),
                    SubField(
                        field_name="ant_device_type",
                        field_type="uint8",
                        refs=[
                            {
                                "field_number": 25,
                                "value_number": 0,
                                "value_name": "ant",
                                "field_name": "source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="source_type",
                        ref_field_value="ant",
                    ),
                    SubField(
                        field_name="local_device_type",
                        field_type="local_device_type",
                        refs=[
                            {
                                "field_number": 25,
                                "value_number": 5,
                                "value_name": "local",
                                "field_name": "source_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="source_type",
                        ref_field_value="local",
                    ),
                ],
                comment=None,
            ),
            2: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="serial_number",
                field_type="uint32z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="product",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="favero_product",
                        field_type="favero_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 263,
                                "value_name": "favero_electronics",
                                "field_name": "manufacturer",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="manufacturer",
                        ref_field_value="favero_electronics",
                    ),
                    SubField(
                        field_name="garmin_product",
                        field_type="garmin_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "garmin",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "dynastream",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "dynastream_oem",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 89,
                                "value_name": "tacx",
                                "field_name": "manufacturer",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=[
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                        ],
                        ref_field_value=[
                            "garmin",
                            "dynastream",
                            "dynastream_oem",
                            "tacx",
                        ],
                    ),
                ],
                comment=None,
            ),
            5: FieldProfile(
                field_name="software_version",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="hardware_version",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="cum_operating_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Reset by new battery or charge.",
            ),
            10: FieldProfile(
                field_name="battery_voltage",
                field_type="uint16",
                array=False,
                components=None,
                scale=256,
                offset=None,
                units="V",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="battery_status",
                field_type="battery_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            18: FieldProfile(
                field_name="sensor_position",
                field_type="body_location",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates the location of the sensor",
            ),
            19: FieldProfile(
                field_name="descriptor",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Used to describe the sensor or location",
            ),
            20: FieldProfile(
                field_name="ant_transmission_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="ant_device_number",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="ant_network",
                field_type="ant_network",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="source_type",
                field_type="source_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            27: FieldProfile(
                field_name="product_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Optional free form string to "
                "indicate the devices name or "
                "model",
            ),
            32: FieldProfile(
                field_name="battery_level",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    375: MessageProfile(
        name="device_aux_battery_info",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="battery_voltage",
                field_type="uint16",
                array=False,
                components=None,
                scale=256,
                offset=None,
                units="V",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="battery_status",
                field_type="battery_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="battery_identifier",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    72: MessageProfile(
        name="training_file",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="type",
                field_type="file",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="product",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="favero_product",
                        field_type="favero_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 263,
                                "value_name": "favero_electronics",
                                "field_name": "manufacturer",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="manufacturer",
                        ref_field_value="favero_electronics",
                    ),
                    SubField(
                        field_name="garmin_product",
                        field_type="garmin_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "garmin",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "dynastream",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "dynastream_oem",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 89,
                                "value_name": "tacx",
                                "field_name": "manufacturer",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=[
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                        ],
                        ref_field_value=[
                            "garmin",
                            "dynastream",
                            "dynastream_oem",
                            "tacx",
                        ],
                    ),
                ],
                comment=None,
            ),
            3: FieldProfile(
                field_name="serial_number",
                field_type="uint32z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="time_created",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    128: MessageProfile(
        name="weather_conditions",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="time of update for current conditions, else forecast time",
            ),
            0: FieldProfile(
                field_name="weather_report",
                field_type="weather_report",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Current or forecast",
            ),
            1: FieldProfile(
                field_name="temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="condition",
                field_type="weather_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Corresponds to GSC Response weatherIcon field",
            ),
            3: FieldProfile(
                field_name="wind_direction",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="wind_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="precipitation_probability",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="range 0-100",
            ),
            6: FieldProfile(
                field_name="temperature_feels_like",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Heat Index if GCS heatIdx above "
                "or equal to 90F or wind chill if "
                "GCS windChill below or equal to "
                "32F",
            ),
            7: FieldProfile(
                field_name="relative_humidity",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="location",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="string corresponding to GCS response location string",
            ),
            9: FieldProfile(
                field_name="observed_at_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="observed_location_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="observed_location_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="day_of_week",
                field_type="day_of_week",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="high_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="low_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    129: MessageProfile(
        name="weather_alert",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="report_id",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Unique identifier from GCS report ID string, length is 12",
            ),
            1: FieldProfile(
                field_name="issue_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time alert was issued",
            ),
            2: FieldProfile(
                field_name="expire_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time alert expires",
            ),
            3: FieldProfile(
                field_name="severity",
                field_type="weather_severity",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Warning, Watch, Advisory, Statement",
            ),
            4: FieldProfile(
                field_name="type",
                field_type="weather_severe_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Tornado, Severe Thunderstorm, etc.",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    160: MessageProfile(
        name="gps_metadata",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp.",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="enhanced_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="enhanced_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="heading",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="utc_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Used to correlate UTC to system "
                "time if the timestamp of the "
                "message is in system time. This "
                "UTC time is derived from the GPS "
                "data.",
            ),
            7: FieldProfile(
                field_name="velocity",
                field_type="sint16",
                array=3,
                components=None,
                scale=100,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="velocity[0] is lon velocity. "
                "Velocity[1] is lat velocity. "
                "Velocity[2] is altitude "
                "velocity.",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    161: MessageProfile(
        name="camera_event",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp.",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="camera_event_type",
                field_type="camera_event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="camera_file_uuid",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="camera_orientation",
                field_type="camera_orientation_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    164: MessageProfile(
        name="gyroscope_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="sample_time_offset",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Each time in the array describes "
                "the time at which the gyro "
                "sample with the corrosponding "
                "index was taken. Limited to 30 "
                "samples in each message. The "
                "samples may span across seconds. "
                "Array size must match the number "
                "of samples in gyro_x and gyro_y "
                "and gyro_z",
            ),
            2: FieldProfile(
                field_name="gyro_x",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            3: FieldProfile(
                field_name="gyro_y",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            4: FieldProfile(
                field_name="gyro_z",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            5: FieldProfile(
                field_name="calibrated_gyro_x",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated gyro reading",
            ),
            6: FieldProfile(
                field_name="calibrated_gyro_y",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated gyro reading",
            ),
            7: FieldProfile(
                field_name="calibrated_gyro_z",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated gyro reading",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    165: MessageProfile(
        name="accelerometer_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="sample_time_offset",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Each time in the array describes "
                "the time at which the "
                "accelerometer sample with the "
                "corrosponding index was taken. "
                "Limited to 30 samples in each "
                "message. The samples may span "
                "across seconds. Array size must "
                "match the number of samples in "
                "accel_x and accel_y and accel_z",
            ),
            2: FieldProfile(
                field_name="accel_x",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            3: FieldProfile(
                field_name="accel_y",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            4: FieldProfile(
                field_name="accel_z",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            5: FieldProfile(
                field_name="calibrated_accel_x",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="g",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
            6: FieldProfile(
                field_name="calibrated_accel_y",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="g",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
            7: FieldProfile(
                field_name="calibrated_accel_z",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="g",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
            8: FieldProfile(
                field_name="compressed_calibrated_accel_x",
                field_type="sint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
            9: FieldProfile(
                field_name="compressed_calibrated_accel_y",
                field_type="sint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
            10: FieldProfile(
                field_name="compressed_calibrated_accel_z",
                field_type="sint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated accel reading",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    208: MessageProfile(
        name="magnetometer_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="sample_time_offset",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Each time in the array describes "
                "the time at which the compass "
                "sample with the corrosponding "
                "index was taken. Limited to 30 "
                "samples in each message. The "
                "samples may span across seconds. "
                "Array size must match the number "
                "of samples in cmps_x and cmps_y "
                "and cmps_z",
            ),
            2: FieldProfile(
                field_name="mag_x",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            3: FieldProfile(
                field_name="mag_y",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            4: FieldProfile(
                field_name="mag_z",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "Maximum number of samples is 30 "
                "in each message. The samples may "
                "span across seconds. A "
                "conversion will need to be done "
                "on this data once read.",
            ),
            5: FieldProfile(
                field_name="calibrated_mag_x",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="G",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated Magnetometer reading",
            ),
            6: FieldProfile(
                field_name="calibrated_mag_y",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="G",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated Magnetometer reading",
            ),
            7: FieldProfile(
                field_name="calibrated_mag_z",
                field_type="float32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="G",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibrated Magnetometer reading",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    209: MessageProfile(
        name="barometer_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="sample_time_offset",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Each time in the array describes "
                "the time at which the barometer "
                "sample with the corrosponding "
                "index was taken. The samples may "
                "span across seconds. Array size "
                "must match the number of samples "
                "in baro_cal",
            ),
            2: FieldProfile(
                field_name="baro_pres",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="Pa",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="These are the raw ADC reading. "
                "The samples may span across "
                "seconds. A conversion will need "
                "to be done on this data once "
                "read.",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    167: MessageProfile(
        name="three_d_sensor_calibration",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="sensor_type",
                field_type="sensor_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates which sensor the calibration is for",
            ),
            1: FieldProfile(
                field_name="calibration_factor",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="accel_cal_factor",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 0,
                                "value_name": "accelerometer",
                                "field_name": "sensor_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="g",
                        bits=None,
                        accumulate=None,
                        comment="Accelerometer calibration factor",
                        ref_field_name="sensor_type",
                        ref_field_value="accelerometer",
                    ),
                    SubField(
                        field_name="gyro_cal_factor",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "gyroscope",
                                "field_name": "sensor_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="deg/s",
                        bits=None,
                        accumulate=None,
                        comment="Gyro calibration factor",
                        ref_field_name="sensor_type",
                        ref_field_value="gyroscope",
                    ),
                ],
                comment="Calibration factor used to "
                "convert from raw ADC value to "
                "degrees, g, etc.",
            ),
            2: FieldProfile(
                field_name="calibration_divisor",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibration factor divisor",
            ),
            3: FieldProfile(
                field_name="level_shift",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Level shift value used to shift the ADC value back into range",
            ),
            4: FieldProfile(
                field_name="offset_cal",
                field_type="sint32",
                array=3,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Internal calibration factors, one for each: xy, yx, zx",
            ),
            5: FieldProfile(
                field_name="orientation_matrix",
                field_type="sint32",
                array=9,
                components=None,
                scale=65535,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="3 x 3 rotation matrix (row major)",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    210: MessageProfile(
        name="one_d_sensor_calibration",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="sensor_type",
                field_type="sensor_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates which sensor the calibration is for",
            ),
            1: FieldProfile(
                field_name="calibration_factor",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="baro_cal_factor",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 3,
                                "value_name": "barometer",
                                "field_name": "sensor_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="Pa",
                        bits=None,
                        accumulate=None,
                        comment="Barometer calibration factor",
                        ref_field_name="sensor_type",
                        ref_field_value="barometer",
                    )
                ],
                comment="Calibration factor used to "
                "convert from raw ADC value to "
                "degrees, g, etc.",
            ),
            2: FieldProfile(
                field_name="calibration_divisor",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="counts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Calibration factor divisor",
            ),
            3: FieldProfile(
                field_name="level_shift",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Level shift value used to shift the ADC value back into range",
            ),
            4: FieldProfile(
                field_name="offset_cal",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Internal Calibration factor",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    169: MessageProfile(
        name="video_frame",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Whole second part of the timestamp",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond part of the timestamp.",
            ),
            1: FieldProfile(
                field_name="frame_number",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of the frame that the "
                "timestamp and timestamp_ms "
                "correlate to",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    174: MessageProfile(
        name="obdii_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timestamp message was output",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of timestamp, added to timestamp",
            ),
            1: FieldProfile(
                field_name="time_offset",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Offset of PID reading [i] from "
                "start_timestamp+start_timestamp_ms. "
                "Readings may span accross "
                "seconds.",
            ),
            2: FieldProfile(
                field_name="pid",
                field_type="byte",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Parameter ID",
            ),
            3: FieldProfile(
                field_name="raw_data",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Raw parameter data",
            ),
            4: FieldProfile(
                field_name="pid_data_size",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Optional, data size of PID[i]. "
                "If not specified refer to SAE "
                "J1979.",
            ),
            5: FieldProfile(
                field_name="system_time",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="System time associated with "
                "sample expressed in ms, can be "
                "used instead of time_offset. "
                "There will be a system_time "
                "value for each raw_data element. "
                "For multibyte pids the "
                "system_time is repeated.",
            ),
            6: FieldProfile(
                field_name="start_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timestamp of first sample "
                "recorded in the message. Used "
                "with time_offset to generate "
                "time of each sample",
            ),
            7: FieldProfile(
                field_name="start_timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of start_timestamp",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    177: MessageProfile(
        name="nmea_sentence",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timestamp message was output",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of timestamp, added to timestamp",
            ),
            1: FieldProfile(
                field_name="sentence",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="NMEA sentence",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    178: MessageProfile(
        name="aviation_attitude",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timestamp message was output",
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Fractional part of timestamp, added to timestamp",
            ),
            1: FieldProfile(
                field_name="system_time",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="System time associated with sample expressed in ms.",
            ),
            2: FieldProfile(
                field_name="pitch",
                field_type="sint16",
                array="N",
                components=None,
                scale=10430.38,
                offset=None,
                units="radians",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Range -PI/2 to +PI/2",
            ),
            3: FieldProfile(
                field_name="roll",
                field_type="sint16",
                array="N",
                components=None,
                scale=10430.38,
                offset=None,
                units="radians",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Range -PI to +PI",
            ),
            4: FieldProfile(
                field_name="accel_lateral",
                field_type="sint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="m/s^2",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Range -78.4 to +78.4 (-8 Gs to 8 Gs)",
            ),
            5: FieldProfile(
                field_name="accel_normal",
                field_type="sint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="m/s^2",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Range -78.4 to +78.4 (-8 Gs to 8 Gs)",
            ),
            6: FieldProfile(
                field_name="turn_rate",
                field_type="sint16",
                array="N",
                components=None,
                scale=1024,
                offset=None,
                units="radians/second",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec)",
            ),
            7: FieldProfile(
                field_name="stage",
                field_type="attitude_stage",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="attitude_stage_complete",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The percent complete of the "
                "current attitude stage. Set to 0 "
                "for attitude stages 0, 1 and 2 "
                "and to 100 for attitude stage 3 "
                "by AHRS modules that do not "
                "support it. Range - 100",
            ),
            9: FieldProfile(
                field_name="track",
                field_type="uint16",
                array="N",
                components=None,
                scale=10430.38,
                offset=None,
                units="radians",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Track Angle/Heading Range 0 - 2pi",
            ),
            10: FieldProfile(
                field_name="validity",
                field_type="attitude_validity",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    184: MessageProfile(
        name="video",
        fields={
            0: FieldProfile(
                field_name="url",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="hosting_provider",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="duration",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Playback time of video",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    185: MessageProfile(
        name="video_title",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Long titles will be split into multiple parts",
            ),
            0: FieldProfile(
                field_name="message_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total number of title parts",
            ),
            1: FieldProfile(
                field_name="text",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    186: MessageProfile(
        name="video_description",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Long descriptions will be split into multiple parts",
            ),
            0: FieldProfile(
                field_name="message_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total number of description parts",
            ),
            1: FieldProfile(
                field_name="text",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    187: MessageProfile(
        name="video_clip",
        fields={
            0: FieldProfile(
                field_name="clip_number",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="start_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="start_timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="end_timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="end_timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="clip_start",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Start of clip in video time",
            ),
            7: FieldProfile(
                field_name="clip_end",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="End of clip in video time",
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    225: MessageProfile(
        name="set",
        fields={
            254: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timestamp of the set",
            ),
            0: FieldProfile(
                field_name="duration",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="repetitions",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="# of repitions of the movement",
            ),
            4: FieldProfile(
                field_name="weight",
                field_type="uint16",
                array=False,
                components=None,
                scale=16,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Amount of weight applied for the set",
            ),
            5: FieldProfile(
                field_name="set_type",
                field_type="set_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Start time of the set",
            ),
            7: FieldProfile(
                field_name="category",
                field_type="exercise_category",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="category_subtype",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Based on the associated "
                "category, see "
                "[category]_exercise_names",
            ),
            9: FieldProfile(
                field_name="weight_display_unit",
                field_type="fit_base_unit",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="wkt_step_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    285: MessageProfile(
        name="jump",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="distance",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="height",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="rotations",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="hang_time",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="score",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="A score for a jump calculated "
                "based on hang time, rotations, "
                "and distance.",
            ),
            5: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="speed",
                field_type="uint16",
                array=False,
                components="enhanced_speed",
                scale=1000,
                offset=None,
                units="m/s",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="enhanced_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    312: MessageProfile(
        name="split",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="split_type",
                field_type="split_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="total_elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="total_distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="avg_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="total_ascent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="total_descent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="start_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="start_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="end_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="end_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="max_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            26: FieldProfile(
                field_name="avg_vert_speed",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            27: FieldProfile(
                field_name="end_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            28: FieldProfile(
                field_name="total_calories",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            74: FieldProfile(
                field_name="start_elevation",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            110: FieldProfile(
                field_name="total_moving_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    313: MessageProfile(
        name="split_summary",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="split_type",
                field_type="split_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="num_splits",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="total_distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="avg_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="max_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="total_ascent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="total_descent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="avg_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="avg_vert_speed",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="total_calories",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            77: FieldProfile(
                field_name="total_moving_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    317: MessageProfile(
        name="climb_pro",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="climb_pro_event",
                field_type="climb_pro_event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="climb_number",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="climb_category",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="current_dist",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    206: MessageProfile(
        name="field_description",
        fields={
            0: FieldProfile(
                field_name="developer_data_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="field_definition_number",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="fit_base_type_id",
                field_type="fit_base_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="field_name",
                field_type="string",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="array",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="components",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="scale",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="offset",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="units",
                field_type="string",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="bits",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="accumulate",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="fit_base_unit_id",
                field_type="fit_base_unit",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="native_mesg_num",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="native_field_num",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    207: MessageProfile(
        name="developer_data_id",
        fields={
            0: FieldProfile(
                field_name="developer_id",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="application_id",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="manufacturer_id",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="developer_data_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="application_version",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="ACTIVITY FILE MESSAGES",
    ),
    31: MessageProfile(
        name="course",
        fields={
            4: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="capabilities",
                field_type="course_capabilities",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="COURSE FILE MESSAGES",
    ),
    32: MessageProfile(
        name="course_point",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="type",
                field_type="course_point",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="favorite",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="COURSE FILE MESSAGES",
    ),
    148: MessageProfile(
        name="segment_id",
        fields={
            0: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Friendly name assigned to segment",
            ),
            1: FieldProfile(
                field_name="uuid",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="UUID of the segment",
            ),
            2: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sport associated with the segment",
            ),
            3: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Segment enabled for evaluation",
            ),
            4: FieldProfile(
                field_name="user_profile_primary_key",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Primary key of the user that created the segment",
            ),
            5: FieldProfile(
                field_name="device_id",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="ID of the device that created the segment",
            ),
            6: FieldProfile(
                field_name="default_race_leader",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index for the Leader Board entry "
                "selected as the default race "
                "participant",
            ),
            7: FieldProfile(
                field_name="delete_status",
                field_type="segment_delete_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates if any segments should be deleted",
            ),
            8: FieldProfile(
                field_name="selection_type",
                field_type="segment_selection_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates how the segment was "
                "selected to be sent to the "
                "device",
            ),
        },
        group="SEGMENT FILE MESSAGES",
    ),
    149: MessageProfile(
        name="segment_leaderboard_entry",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Friendly name assigned to leader",
            ),
            1: FieldProfile(
                field_name="type",
                field_type="segment_leaderboard_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Leader classification",
            ),
            2: FieldProfile(
                field_name="group_primary_key",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Primary user ID of this leader",
            ),
            3: FieldProfile(
                field_name="activity_id",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="ID of the activity associated with this leader time",
            ),
            4: FieldProfile(
                field_name="segment_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Segment Time (includes pauses)",
            ),
            5: FieldProfile(
                field_name="activity_id_string",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="String version of the "
                "activity_id. 21 characters long, "
                "express in decimal",
            ),
        },
        group="SEGMENT FILE MESSAGES",
    ),
    150: MessageProfile(
        name="segment_point",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Accumulated distance along the segment at the described point",
            ),
            4: FieldProfile(
                field_name="altitude",
                field_type="uint16",
                array=False,
                components="enhanced_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment="Accumulated altitude along the segment at the described point",
            ),
            5: FieldProfile(
                field_name="leader_time",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Accumualted time each leader "
                "board member required to reach "
                "the described point. This value "
                "is zero for all leader board "
                "members at the starting point of "
                "the segment.",
            ),
            6: FieldProfile(
                field_name="enhanced_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Accumulated altitude along the segment at the described point",
            ),
        },
        group="SEGMENT FILE MESSAGES",
    ),
    142: MessageProfile(
        name="segment_lap",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Lap end time.",
            ),
            0: FieldProfile(
                field_name="event",
                field_type="event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="event_type",
                field_type="event_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="start_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="start_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="start_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="end_position_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="end_position_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="total_elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time (includes pauses)",
            ),
            8: FieldProfile(
                field_name="total_timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Timer Time (excludes pauses)",
            ),
            9: FieldProfile(
                field_name="total_distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="total_cycles",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="total_strokes",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 2,
                                "value_name": "cycling",
                                "field_name": "sport",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="strokes",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="sport",
                        ref_field_value="cycling",
                    )
                ],
                comment=None,
            ),
            11: FieldProfile(
                field_name="total_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="total_fat_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="If New Leaf",
            ),
            13: FieldProfile(
                field_name="avg_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="max_speed",
                field_type="uint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="avg_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            16: FieldProfile(
                field_name="max_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="avg_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="total_cycles / total_timer_time "
                "if non_zero_avg_cadence "
                "otherwise total_cycles / "
                "total_elapsed_time",
            ),
            18: FieldProfile(
                field_name="max_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            19: FieldProfile(
                field_name="avg_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="total_power / total_timer_time "
                "if non_zero_avg_power otherwise "
                "total_power / "
                "total_elapsed_time",
            ),
            20: FieldProfile(
                field_name="max_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            21: FieldProfile(
                field_name="total_ascent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            22: FieldProfile(
                field_name="total_descent",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            23: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="event_group",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            25: FieldProfile(
                field_name="nec_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="North east corner latitude.",
            ),
            26: FieldProfile(
                field_name="nec_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="North east corner longitude.",
            ),
            27: FieldProfile(
                field_name="swc_lat",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="South west corner latitude.",
            ),
            28: FieldProfile(
                field_name="swc_long",
                field_type="sint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="semicircles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="South west corner latitude.",
            ),
            29: FieldProfile(
                field_name="name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            30: FieldProfile(
                field_name="normalized_power",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            31: FieldProfile(
                field_name="left_right_balance",
                field_type="left_right_balance_100",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            32: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            33: FieldProfile(
                field_name="total_work",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="J",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            34: FieldProfile(
                field_name="avg_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_avg_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            35: FieldProfile(
                field_name="max_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_max_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            36: FieldProfile(
                field_name="gps_accuracy",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            37: FieldProfile(
                field_name="avg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            38: FieldProfile(
                field_name="avg_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            39: FieldProfile(
                field_name="avg_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            40: FieldProfile(
                field_name="max_pos_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            41: FieldProfile(
                field_name="max_neg_grade",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            42: FieldProfile(
                field_name="avg_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            43: FieldProfile(
                field_name="max_temperature",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            44: FieldProfile(
                field_name="total_moving_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            45: FieldProfile(
                field_name="avg_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            46: FieldProfile(
                field_name="avg_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            47: FieldProfile(
                field_name="max_pos_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            48: FieldProfile(
                field_name="max_neg_vertical_speed",
                field_type="sint16",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            49: FieldProfile(
                field_name="time_in_hr_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            50: FieldProfile(
                field_name="time_in_speed_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            51: FieldProfile(
                field_name="time_in_cadence_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            52: FieldProfile(
                field_name="time_in_power_zone",
                field_type="uint32",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            53: FieldProfile(
                field_name="repetition_num",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            54: FieldProfile(
                field_name="min_altitude",
                field_type="uint16",
                array=False,
                components="enhanced_min_altitude",
                scale=5,
                offset=500,
                units="m",
                bits=16,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            55: FieldProfile(
                field_name="min_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            56: FieldProfile(
                field_name="active_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            57: FieldProfile(
                field_name="wkt_step_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            58: FieldProfile(
                field_name="sport_event",
                field_type="sport_event",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            59: FieldProfile(
                field_name="avg_left_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            60: FieldProfile(
                field_name="avg_right_torque_effectiveness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            61: FieldProfile(
                field_name="avg_left_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            62: FieldProfile(
                field_name="avg_right_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            63: FieldProfile(
                field_name="avg_combined_pedal_smoothness",
                field_type="uint8",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            64: FieldProfile(
                field_name="status",
                field_type="segment_lap_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            65: FieldProfile(
                field_name="uuid",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            66: FieldProfile(
                field_name="avg_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the avg_cadence",
            ),
            67: FieldProfile(
                field_name="max_fractional_cadence",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the max_cadence",
            ),
            68: FieldProfile(
                field_name="total_fractional_cycles",
                field_type="uint8",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of the total_cycles",
            ),
            69: FieldProfile(
                field_name="front_gear_shift_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            70: FieldProfile(
                field_name="rear_gear_shift_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            71: FieldProfile(
                field_name="time_standing",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total time spent in the standing position",
            ),
            72: FieldProfile(
                field_name="stand_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Number of transitions to the standing state",
            ),
            73: FieldProfile(
                field_name="avg_left_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left platform center offset",
            ),
            74: FieldProfile(
                field_name="avg_right_pco",
                field_type="sint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right platform center offset",
            ),
            75: FieldProfile(
                field_name="avg_left_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            76: FieldProfile(
                field_name="avg_left_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average left power phase peak "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            77: FieldProfile(
                field_name="avg_right_power_phase",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            78: FieldProfile(
                field_name="avg_right_power_phase_peak",
                field_type="uint8",
                array="N",
                components=None,
                scale=0.7111111,
                offset=None,
                units="degrees",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average right power phase peak "
                "angles. Data value indexes "
                "defined by power_phase_type.",
            ),
            79: FieldProfile(
                field_name="avg_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            80: FieldProfile(
                field_name="max_power_position",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="watts",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum power by position. Data "
                "value indexes defined by "
                "rider_position_type.",
            ),
            81: FieldProfile(
                field_name="avg_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            82: FieldProfile(
                field_name="max_cadence_position",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="rpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum cadence by position. "
                "Data value indexes defined by "
                "rider_position_type.",
            ),
            83: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Manufacturer that produced the segment",
            ),
            84: FieldProfile(
                field_name="total_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            85: FieldProfile(
                field_name="total_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            86: FieldProfile(
                field_name="avg_grit",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kGrit",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The grit score estimates how "
                "challenging a route could be "
                "for a cyclist in terms of time "
                "spent going over sharp turns or "
                "large grade slopes.",
            ),
            87: FieldProfile(
                field_name="avg_flow",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="Flow",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The flow score estimates how "
                "long distance wise a cyclist "
                "deaccelerates over intervals "
                "where deacceleration is "
                "unnecessary such as smooth "
                "turns or small grade angle "
                "intervals.",
            ),
            89: FieldProfile(
                field_name="total_fractional_ascent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_ascent",
            ),
            90: FieldProfile(
                field_name="total_fractional_descent",
                field_type="uint8",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="fractional part of total_descent",
            ),
            91: FieldProfile(
                field_name="enhanced_avg_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            92: FieldProfile(
                field_name="enhanced_max_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            93: FieldProfile(
                field_name="enhanced_min_altitude",
                field_type="uint32",
                array=False,
                components=None,
                scale=5,
                offset=500,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SEGMENT FILE MESSAGES",
    ),
    151: MessageProfile(
        name="segment_file",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="file_uuid",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="UUID of the segment file",
            ),
            3: FieldProfile(
                field_name="enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Enabled state of the segment file",
            ),
            4: FieldProfile(
                field_name="user_profile_primary_key",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Primary key of the user that created the segment file",
            ),
            7: FieldProfile(
                field_name="leader_type",
                field_type="segment_leaderboard_type",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Leader type of each leader in the segment file",
            ),
            8: FieldProfile(
                field_name="leader_group_primary_key",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Group primary key of each leader in the segment file",
            ),
            9: FieldProfile(
                field_name="leader_activity_id",
                field_type="uint32",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Activity ID of each leader in the segment file",
            ),
            10: FieldProfile(
                field_name="leader_activity_id_string",
                field_type="string",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="String version of the activity "
                "ID of each leader in the "
                "segment file. 21 characters "
                "long for each ID, express in "
                "decimal",
            ),
            11: FieldProfile(
                field_name="default_race_leader",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index for the Leader Board "
                "entry selected as the default "
                "race participant",
            ),
        },
        group="SEGMENT LIST FILE MESSAGES",
    ),
    26: MessageProfile(
        name="workout",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="capabilities",
                field_type="workout_capabilities",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="num_valid_steps",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="number of valid steps",
            ),
            8: FieldProfile(
                field_name="wkt_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            14: FieldProfile(
                field_name="pool_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            15: FieldProfile(
                field_name="pool_length_unit",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            17: FieldProfile(
                field_name="wkt_description",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Description of the workout",
            ),
        },
        group="WORKOUT FILE MESSAGES",
    ),
    158: MessageProfile(
        name="workout_session",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="num_valid_steps",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="first_step_index",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="pool_length",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="pool_length_unit",
                field_type="display_measure",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="WORKOUT FILE MESSAGES",
    ),
    27: MessageProfile(
        name="workout_step",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="wkt_step_name",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="duration_type",
                field_type="wkt_step_duration",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="duration_value",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="duration_time",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 0,
                                "value_name": "time",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 28,
                                "value_name": "repetition_time",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["duration_type", "duration_type"],
                        ref_field_value=["time", "repetition_time"],
                    ),
                    SubField(
                        field_name="duration_distance",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 1,
                                "value_name": "distance",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=100,
                        offset=None,
                        units="m",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="distance",
                    ),
                    SubField(
                        field_name="duration_hr",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 2,
                                "value_name": "hr_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 3,
                                "value_name": "hr_greater_than",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["duration_type", "duration_type"],
                        ref_field_value=["hr_less_than", "hr_greater_than"],
                    ),
                    SubField(
                        field_name="duration_calories",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 4,
                                "value_name": "calories",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="calories",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="calories",
                    ),
                    SubField(
                        field_name="duration_step",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 6,
                                "value_name": "repeat_until_steps_cmplt",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 7,
                                "value_name": "repeat_until_time",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 8,
                                "value_name": "repeat_until_distance",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 9,
                                "value_name": "repeat_until_calories",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 10,
                                "value_name": "repeat_until_hr_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 11,
                                "value_name": "repeat_until_hr_greater_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 12,
                                "value_name": "repeat_until_power_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 13,
                                "value_name": "repeat_until_power_greater_than",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="message_index "
                        "of step to "
                        "loop back to. "
                        "Steps are "
                        "assumed to be "
                        "in the order "
                        "by "
                        "message_index. "
                        "custom_name "
                        "and intensity "
                        "members are "
                        "undefined for "
                        "this duration "
                        "type.",
                        ref_field_name=[
                            "duration_type",
                            "duration_type",
                            "duration_type",
                            "duration_type",
                            "duration_type",
                            "duration_type",
                            "duration_type",
                            "duration_type",
                        ],
                        ref_field_value=[
                            "repeat_until_steps_cmplt",
                            "repeat_until_time",
                            "repeat_until_distance",
                            "repeat_until_calories",
                            "repeat_until_hr_less_than",
                            "repeat_until_hr_greater_than",
                            "repeat_until_power_less_than",
                            "repeat_until_power_greater_than",
                        ],
                    ),
                    SubField(
                        field_name="duration_power",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 14,
                                "value_name": "power_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 15,
                                "value_name": "power_greater_than",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["duration_type", "duration_type"],
                        ref_field_value=["power_less_than", "power_greater_than"],
                    ),
                    SubField(
                        field_name="duration_reps",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 29,
                                "value_name": "reps",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="reps",
                    ),
                ],
                comment=None,
            ),
            3: FieldProfile(
                field_name="target_type",
                field_type="wkt_step_target",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="target_value",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="target_speed_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="speed zone (1-10);Custom =0;",
                        ref_field_name="target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="target_hr_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="hr zone (1-5);Custom =0;",
                        ref_field_name="target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="target_cadence_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="Zone (1-?); Custom = 0;",
                        ref_field_name="target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="target_power_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="Power Zone ( 1-7); Custom = 0;",
                        ref_field_name="target_type",
                        ref_field_value="power",
                    ),
                    SubField(
                        field_name="repeat_steps",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 6,
                                "value_name": "repeat_until_steps_cmplt",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="# of repetitions",
                        ref_field_name="duration_type",
                        ref_field_value="repeat_until_steps_cmplt",
                    ),
                    SubField(
                        field_name="repeat_time",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 7,
                                "value_name": "repeat_until_time",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="repeat_until_time",
                    ),
                    SubField(
                        field_name="repeat_distance",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 8,
                                "value_name": "repeat_until_distance",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=100,
                        offset=None,
                        units="m",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="repeat_until_distance",
                    ),
                    SubField(
                        field_name="repeat_calories",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 9,
                                "value_name": "repeat_until_calories",
                                "field_name": "duration_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="calories",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="duration_type",
                        ref_field_value="repeat_until_calories",
                    ),
                    SubField(
                        field_name="repeat_hr",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 10,
                                "value_name": "repeat_until_hr_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 11,
                                "value_name": "repeat_until_hr_greater_than",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["duration_type", "duration_type"],
                        ref_field_value=[
                            "repeat_until_hr_less_than",
                            "repeat_until_hr_greater_than",
                        ],
                    ),
                    SubField(
                        field_name="repeat_power",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 1,
                                "value_number": 12,
                                "value_name": "repeat_until_power_less_than",
                                "field_name": "duration_type",
                            },
                            {
                                "field_number": 1,
                                "value_number": 13,
                                "value_name": "repeat_until_power_greater_than",
                                "field_name": "duration_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["duration_type", "duration_type"],
                        ref_field_value=[
                            "repeat_until_power_less_than",
                            "repeat_until_power_greater_than",
                        ],
                    ),
                    SubField(
                        field_name="target_stroke_type",
                        field_type="swim_stroke",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 11,
                                "value_name": "swim_stroke",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="swim_stroke",
                    ),
                ],
                comment=None,
            ),
            5: FieldProfile(
                field_name="custom_target_value_low",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="custom_target_speed_low",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="custom_target_heart_rate_low",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="custom_target_cadence_low",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="custom_target_power_low",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="power",
                    ),
                ],
                comment=None,
            ),
            6: FieldProfile(
                field_name="custom_target_value_high",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="custom_target_speed_high",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="custom_target_heart_rate_high",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="custom_target_cadence_high",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="custom_target_power_high",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 3,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="target_type",
                        ref_field_value="power",
                    ),
                ],
                comment=None,
            ),
            7: FieldProfile(
                field_name="intensity",
                field_type="intensity",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="notes",
                field_type="string",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="equipment",
                field_type="workout_equipment",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="exercise_category",
                field_type="exercise_category",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="exercise_name",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="exercise_weight",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            13: FieldProfile(
                field_name="weight_display_unit",
                field_type="fit_base_unit",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            19: FieldProfile(
                field_name="secondary_target_type",
                field_type="wkt_step_target",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            20: FieldProfile(
                field_name="secondary_target_value",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="secondary_target_speed_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="speed zone (1-10);Custom =0;",
                        ref_field_name="secondary_target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="secondary_target_hr_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="hr zone (1-5);Custom =0;",
                        ref_field_name="secondary_target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="secondary_target_cadence_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="Zone (1-?); Custom = 0;",
                        ref_field_name="secondary_target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="secondary_target_power_zone",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment="Power Zone ( 1-7); Custom = 0;",
                        ref_field_name="secondary_target_type",
                        ref_field_value="power",
                    ),
                    SubField(
                        field_name="secondary_target_stroke_type",
                        field_type="swim_stroke",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 11,
                                "value_name": "swim_stroke",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="swim_stroke",
                    ),
                ],
                comment=None,
            ),
            21: FieldProfile(
                field_name="secondary_custom_target_value_low",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="secondary_custom_target_speed_low",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="secondary_custom_target_heart_rate_low",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="secondary_custom_target_cadence_low",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="secondary_custom_target_power_low",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="power",
                    ),
                ],
                comment=None,
            ),
            22: FieldProfile(
                field_name="secondary_custom_target_value_high",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="secondary_custom_target_speed_high",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 0,
                                "value_name": "speed",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=1000,
                        offset=None,
                        units="m/s",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="speed",
                    ),
                    SubField(
                        field_name="secondary_custom_target_heart_rate_high",
                        field_type="workout_hr",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 1,
                                "value_name": "heart_rate",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or bpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="heart_rate",
                    ),
                    SubField(
                        field_name="secondary_custom_target_cadence_high",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 3,
                                "value_name": "cadence",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="rpm",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="cadence",
                    ),
                    SubField(
                        field_name="secondary_custom_target_power_high",
                        field_type="workout_power",
                        refs=[
                            {
                                "field_number": 19,
                                "value_number": 4,
                                "value_name": "power",
                                "field_name": "secondary_target_type",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units="% or watts",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="secondary_target_type",
                        ref_field_value="power",
                    ),
                ],
                comment=None,
            ),
        },
        group="WORKOUT FILE MESSAGES",
    ),
    264: MessageProfile(
        name="exercise_title",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="exercise_category",
                field_type="exercise_category",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="exercise_name",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="wkt_step_name",
                field_type="string",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="WORKOUT FILE MESSAGES",
    ),
    28: MessageProfile(
        name="schedule",
        fields={
            0: FieldProfile(
                field_name="manufacturer",
                field_type="manufacturer",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Corresponds to file_id of scheduled workout / course.",
            ),
            1: FieldProfile(
                field_name="product",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="favero_product",
                        field_type="favero_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 263,
                                "value_name": "favero_electronics",
                                "field_name": "manufacturer",
                            }
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name="manufacturer",
                        ref_field_value="favero_electronics",
                    ),
                    SubField(
                        field_name="garmin_product",
                        field_type="garmin_product",
                        refs=[
                            {
                                "field_number": 0,
                                "value_number": 1,
                                "value_name": "garmin",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 15,
                                "value_name": "dynastream",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 13,
                                "value_name": "dynastream_oem",
                                "field_name": "manufacturer",
                            },
                            {
                                "field_number": 0,
                                "value_number": 89,
                                "value_name": "tacx",
                                "field_name": "manufacturer",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=None,
                        offset=None,
                        units=None,
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=[
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                            "manufacturer",
                        ],
                        ref_field_value=[
                            "garmin",
                            "dynastream",
                            "dynastream_oem",
                            "tacx",
                        ],
                    ),
                ],
                comment="Corresponds to file_id of scheduled workout / course.",
            ),
            2: FieldProfile(
                field_name="serial_number",
                field_type="uint32z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Corresponds to file_id of scheduled workout / course.",
            ),
            3: FieldProfile(
                field_name="time_created",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Corresponds to file_id of scheduled workout / course.",
            ),
            4: FieldProfile(
                field_name="completed",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="TRUE if this activity has been started",
            ),
            5: FieldProfile(
                field_name="type",
                field_type="schedule",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="scheduled_time",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="SCHEDULE FILE MESSAGES",
    ),
    33: MessageProfile(
        name="totals",
        fields={
            254: FieldProfile(
                field_name="message_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="timer_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Excludes pauses",
            ),
            1: FieldProfile(
                field_name="distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="calories",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="elapsed_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Includes pauses",
            ),
            5: FieldProfile(
                field_name="sessions",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="active_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="sport_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="TOTALS FILE MESSAGES",
    ),
    30: MessageProfile(
        name="weight_scale",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="weight",
                field_type="weight",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="percent_fat",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="percent_hydration",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="%",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="visceral_fat_mass",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="bone_mass",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="muscle_mass",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="kg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="basal_met",
                field_type="uint16",
                array=False,
                components=None,
                scale=4,
                offset=None,
                units="kcal/day",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="physique_rating",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="active_met",
                field_type="uint16",
                array=False,
                components=None,
                scale=4,
                offset=None,
                units="kcal/day",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="~4kJ per kcal, 0.25 allows max 16384 kcal",
            ),
            10: FieldProfile(
                field_name="metabolic_age",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="years",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="visceral_fat_rating",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="user_profile_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Associates this weight scale "
                "message to a user. This "
                "corresponds to the index of the "
                "user profile message in the "
                "weight scale file.",
            ),
            13: FieldProfile(
                field_name="bmi",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="kg/m^2",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="WEIGHT SCALE FILE MESSAGES",
    ),
    51: MessageProfile(
        name="blood_pressure",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="systolic_pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="diastolic_pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="mean_arterial_pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="map_3_sample_mean",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="map_morning_values",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="map_evening_values",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="mmHg",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="heart_rate_type",
                field_type="hr_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="status",
                field_type="bp_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="user_profile_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Associates this blood pressure "
                "message to a user. This "
                "corresponds to the index of the "
                "user profile message in the blood "
                "pressure file.",
            ),
        },
        group="BLOOD PRESSURE FILE MESSAGES",
    ),
    103: MessageProfile(
        name="monitoring_info",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="local_timestamp",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Use to convert activity "
                "timestamps to local time if "
                "device does not support time "
                "zone and daylight savings time "
                "correction.",
            ),
            1: FieldProfile(
                field_name="activity_type",
                field_type="activity_type",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="cycles_to_distance",
                field_type="uint16",
                array="N",
                components=None,
                scale=5000,
                offset=None,
                units="m/cycle",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indexed by activity_type",
            ),
            4: FieldProfile(
                field_name="cycles_to_calories",
                field_type="uint16",
                array="N",
                components=None,
                scale=5000,
                offset=None,
                units="kcal/cycle",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indexed by activity_type",
            ),
            5: FieldProfile(
                field_name="resting_metabolic_rate",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal / day",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    55: MessageProfile(
        name="monitoring",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Must align to logging interval, "
                "for example, time must be "
                "00:00:00 for daily log.",
            ),
            0: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Associates this data to "
                "device_info message. Not required "
                "for file with single device "
                "(sensor).",
            ),
            1: FieldProfile(
                field_name="calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Accumulated total calories. "
                "Maintained by MonitoringReader "
                "for each activity_type. See SDK "
                "documentation",
            ),
            2: FieldProfile(
                field_name="distance",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Accumulated distance. Maintained "
                "by MonitoringReader for each "
                "activity_type. See SDK "
                "documentation.",
            ),
            3: FieldProfile(
                field_name="cycles",
                field_type="uint32",
                array=False,
                components=None,
                scale=2,
                offset=None,
                units="cycles",
                bits=None,
                accumulate=None,
                subfields=[
                    SubField(
                        field_name="steps",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 6,
                                "value_name": "walking",
                                "field_name": "activity_type",
                            },
                            {
                                "field_number": 5,
                                "value_number": 1,
                                "value_name": "running",
                                "field_name": "activity_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=1,
                        offset=None,
                        units="steps",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["activity_type", "activity_type"],
                        ref_field_value=["walking", "running"],
                    ),
                    SubField(
                        field_name="strokes",
                        field_type="uint32",
                        refs=[
                            {
                                "field_number": 5,
                                "value_number": 2,
                                "value_name": "cycling",
                                "field_name": "activity_type",
                            },
                            {
                                "field_number": 5,
                                "value_number": 5,
                                "value_name": "swimming",
                                "field_name": "activity_type",
                            },
                        ],
                        array=False,
                        components=None,
                        scale=2,
                        offset=None,
                        units="strokes",
                        bits=None,
                        accumulate=None,
                        comment=None,
                        ref_field_name=["activity_type", "activity_type"],
                        ref_field_value=["cycling", "swimming"],
                    ),
                ],
                comment="Accumulated cycles. Maintained by "
                "MonitoringReader for each "
                "activity_type. See SDK "
                "documentation.",
            ),
            4: FieldProfile(
                field_name="active_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="activity_type",
                field_type="activity_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="activity_subtype",
                field_type="activity_subtype",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="activity_level",
                field_type="activity_level",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="distance_16",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="100 * m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="cycles_16",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="2 * cycles (steps)",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="active_time_16",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="local_timestamp",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Must align to logging interval, "
                "for example, time must be "
                "00:00:00 for daily log.",
            ),
            12: FieldProfile(
                field_name="temperature",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Avg temperature during the "
                "logging interval ended at "
                "timestamp",
            ),
            14: FieldProfile(
                field_name="temperature_min",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Min temperature during the "
                "logging interval ended at "
                "timestamp",
            ),
            15: FieldProfile(
                field_name="temperature_max",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="C",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Max temperature during the "
                "logging interval ended at "
                "timestamp",
            ),
            16: FieldProfile(
                field_name="activity_time",
                field_type="uint16",
                array=8,
                components=None,
                scale=None,
                offset=None,
                units="minutes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indexed using minute_activity_level enum",
            ),
            19: FieldProfile(
                field_name="active_calories",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="kcal",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            24: FieldProfile(
                field_name="current_activity_type_intensity",
                field_type="byte",
                array=False,
                components=["activity_type", "intensity"],
                scale=None,
                offset=None,
                units=None,
                bits="5,3",
                accumulate=None,
                subfields=[],
                comment="Indicates single type / "
                "intensity for duration since "
                "last monitoring message.",
            ),
            25: FieldProfile(
                field_name="timestamp_min_8",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            26: FieldProfile(
                field_name="timestamp_16",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            27: FieldProfile(
                field_name="heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            28: FieldProfile(
                field_name="intensity",
                field_type="uint8",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            29: FieldProfile(
                field_name="duration_min",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            30: FieldProfile(
                field_name="duration",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            31: FieldProfile(
                field_name="ascent",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            32: FieldProfile(
                field_name="descent",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            33: FieldProfile(
                field_name="moderate_activity_minutes",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="minutes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            34: FieldProfile(
                field_name="vigorous_activity_minutes",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="minutes",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    211: MessageProfile(
        name="monitoring_hr_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Must align to logging "
                "interval, for example, time "
                "must be 00:00:00 for daily "
                "log.",
            ),
            0: FieldProfile(
                field_name="resting_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="7-day rolling average",
            ),
            1: FieldProfile(
                field_name="current_day_resting_heart_rate",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="RHR for today only. (Feeds into 7-day average)",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    269: MessageProfile(
        name="spo2_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="reading_spo2",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="reading_confidence",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="mode",
                field_type="spo2_measurement_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Mode when data was captured",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    132: MessageProfile(
        name="hr",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="fractional_timestamp",
                field_type="uint16",
                array=False,
                components=None,
                scale=32768,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="time256",
                field_type="uint8",
                array=False,
                components="fractional_timestamp",
                scale=256,
                offset=None,
                units="s",
                bits=8,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="filtered_bpm",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="event_timestamp",
                field_type="uint32",
                array="N",
                components=None,
                scale=1024,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="event_timestamp_12",
                field_type="byte",
                array="N",
                components=[
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                ],
                scale=[1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
                offset=None,
                units="s",
                bits="12,12,12,12,12,12,12,12,12,12",
                accumulate=[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                subfields=[],
                comment=None,
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    227: MessageProfile(
        name="stress_level",
        fields={
            0: FieldProfile(
                field_name="stress_level_value",
                field_type="sint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="stress_level_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time stress score was calculated",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    229: MessageProfile(
        name="max_met_data",
        fields={
            0: FieldProfile(
                field_name="update_time",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time maxMET and vo2 were calculated",
            ),
            2: FieldProfile(
                field_name="vo2_max",
                field_type="uint16",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="mL/kg/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="sport",
                field_type="sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="sub_sport",
                field_type="sub_sport",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="max_met_category",
                field_type="max_met_category",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="calibrated_data",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates if calibrated data was used in the calculation",
            ),
            12: FieldProfile(
                field_name="hr_source",
                field_type="max_met_heart_rate_source",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indicates if the estimate was "
                "obtained using a chest strap or "
                "wrist heart rate",
            ),
            13: FieldProfile(
                field_name="speed_source",
                field_type="max_met_speed_source",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Indidcates if the estimate was "
                "obtained using onboard GPS or "
                "connected GPS",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    314: MessageProfile(
        name="hsa_body_battery_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="level",
                field_type="sint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Body battery level: [0,100] Blank: -16",
            ),
            2: FieldProfile(
                field_name="charged",
                field_type="sint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Body battery charged value",
            ),
            3: FieldProfile(
                field_name="uncharged",
                field_type="sint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Body battery uncharged value",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    315: MessageProfile(
        name="hsa_event",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="event_id",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Event ID. Health SDK use only",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    302: MessageProfile(
        name="hsa_accelerometer_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond resolution of the timestamp",
            ),
            1: FieldProfile(
                field_name="sampling_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sampling Interval in Milliseconds",
            ),
            2: FieldProfile(
                field_name="accel_x",
                field_type="sint16",
                array="N",
                components=None,
                scale=[1, 24],
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="X-Axis Measurement",
            ),
            3: FieldProfile(
                field_name="accel_y",
                field_type="sint16",
                array="N",
                components=None,
                scale=[1, 24],
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Y-Axis Measurement",
            ),
            4: FieldProfile(
                field_name="accel_z",
                field_type="sint16",
                array="N",
                components=None,
                scale=[1, 24],
                offset=None,
                units="mG",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Z-Axis Measurement",
            ),
            5: FieldProfile(
                field_name="timestamp_32k",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="32 kHz timestamp",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    376: MessageProfile(
        name="hsa_gyroscope_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond resolution of the timestamp",
            ),
            1: FieldProfile(
                field_name="sampling_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="1/32768 s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sampling Interval in 32 kHz timescale",
            ),
            2: FieldProfile(
                field_name="gyro_x",
                field_type="sint16",
                array="N",
                components=None,
                scale=[28, 57143],
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="X-Axis Measurement",
            ),
            3: FieldProfile(
                field_name="gyro_y",
                field_type="sint16",
                array="N",
                components=None,
                scale=[28, 57143],
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Y-Axis Measurement",
            ),
            4: FieldProfile(
                field_name="gyro_z",
                field_type="sint16",
                array="N",
                components=None,
                scale=[28, 57143],
                offset=None,
                units="deg/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Z-Axis Measurement",
            ),
            5: FieldProfile(
                field_name="timestamp_32k",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="1/32768 s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="32 kHz timestamp",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    304: MessageProfile(
        name="hsa_step_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in "
                "seconds. File start: 0xFFFFFFEF "
                "File stop: 0xFFFFFFEE",
            ),
            1: FieldProfile(
                field_name="steps",
                field_type="uint32",
                array="N",
                components=None,
                scale=1,
                offset=None,
                units="steps",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total step sum",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    305: MessageProfile(
        name="hsa_spo2_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="reading_spo2",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="SpO2 Reading: [70,100] Blank: 240",
            ),
            2: FieldProfile(
                field_name="confidence",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="SpO2 Confidence: [0,254]",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    306: MessageProfile(
        name="hsa_stress_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="stress_level",
                field_type="sint8",
                array="N",
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Stress Level: [0,100] Off wrist: "
                "-1 Excess motion: -2 Not enough "
                "data: -3 Recovering from "
                "exercise: -4 Unidentified: -5 "
                "Blank: -16",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    307: MessageProfile(
        name="hsa_respiration_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="respiration_rate",
                field_type="sint16",
                array="N",
                components=None,
                scale=100,
                offset=None,
                units="breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Breaths / min: [1,100] Invalid: "
                "255 Excess motion: 254 Off "
                "wrist: 253 Not available: 252 "
                "Blank: 2.4",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    308: MessageProfile(
        name="hsa_heart_rate_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="status",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Status of measurements in buffer "
                "- 0 indicates SEARCHING 1 "
                "indicates LOCKED",
            ),
            2: FieldProfile(
                field_name="heart_rate",
                field_type="uint8",
                array="N",
                components=None,
                scale=1,
                offset=None,
                units="bpm",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Beats / min. Blank: 0",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    389: MessageProfile(
        name="hsa_configuration_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Encoded configuration data",
            ),
            0: FieldProfile(
                field_name="data",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Encoded configuration data. Health SDK use only",
            ),
            1: FieldProfile(
                field_name="data_size",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Size in bytes of data field",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    409: MessageProfile(
        name="hsa_wrist_temperature_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="processing_interval",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Processing interval length in seconds",
            ),
            1: FieldProfile(
                field_name="value",
                field_type="uint16",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="degC",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Wrist temperature reading",
            ),
        },
        group="MONITORING FILE MESSAGES",
    ),
    145: MessageProfile(
        name="memo_glob",
        fields={
            250: FieldProfile(
                field_name="part_index",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Sequence number of memo blocks",
            ),
            0: FieldProfile(
                field_name="memo",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Deprecated. Use data field.",
            ),
            1: FieldProfile(
                field_name="mesg_num",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Message Number of the parent message",
            ),
            2: FieldProfile(
                field_name="parent_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Index of mesg that this glob is associated with.",
            ),
            3: FieldProfile(
                field_name="field_num",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Field within the parent that this glob is associated with",
            ),
            4: FieldProfile(
                field_name="data",
                field_type="uint8z",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Block of utf8 bytes. Note, "
                "mutltibyte characters may be "
                "split across adjoining memo_glob "
                "messages.",
            ),
        },
        group="OTHER MESSAGES",
    ),
    275: MessageProfile(
        name="sleep_level",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="sleep_level",
                field_type="sleep_level",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    82: MessageProfile(
        name="ant_channel_id",
        fields={
            0: FieldProfile(
                field_name="channel_number",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="device_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="device_number",
                field_type="uint16z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="transmission_type",
                field_type="uint8z",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="device_index",
                field_type="device_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    80: MessageProfile(
        name="ant_rx",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="fractional_timestamp",
                field_type="uint16",
                array=False,
                components=None,
                scale=32768,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="mesg_id",
                field_type="byte",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="mesg_data",
                field_type="byte",
                array="N",
                components=[
                    "channel_number",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                ],
                scale=None,
                offset=None,
                units=None,
                bits="8,8,8,8,8,8,8,8,8",
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="channel_number",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="data",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    81: MessageProfile(
        name="ant_tx",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="fractional_timestamp",
                field_type="uint16",
                array=False,
                components=None,
                scale=32768,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="mesg_id",
                field_type="byte",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="mesg_data",
                field_type="byte",
                array="N",
                components=[
                    "channel_number",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                ],
                scale=None,
                offset=None,
                units=None,
                bits="8,8,8,8,8,8,8,8,8",
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="channel_number",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="data",
                field_type="byte",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    200: MessageProfile(
        name="exd_screen_configuration",
        fields={
            0: FieldProfile(
                field_name="screen_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="field_count",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="number of fields in screen",
            ),
            2: FieldProfile(
                field_name="layout",
                field_type="exd_layout",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="screen_enabled",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    201: MessageProfile(
        name="exd_data_field_configuration",
        fields={
            0: FieldProfile(
                field_name="screen_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="concept_field",
                field_type="byte",
                array=False,
                components=["field_id", "concept_count"],
                scale=None,
                offset=None,
                units=None,
                bits="4,4",
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="field_id",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="concept_count",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="display_type",
                field_type="exd_display_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="title",
                field_type="string",
                array=32,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    202: MessageProfile(
        name="exd_data_concept_configuration",
        fields={
            0: FieldProfile(
                field_name="screen_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="concept_field",
                field_type="byte",
                array=False,
                components=["field_id", "concept_index"],
                scale=None,
                offset=None,
                units=None,
                bits="4,4",
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="field_id",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="concept_index",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="data_page",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="concept_key",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="scaling",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="data_units",
                field_type="exd_data_units",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="qualifier",
                field_type="exd_qualifiers",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="descriptor",
                field_type="exd_descriptors",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="is_signed",
                field_type="bool",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    268: MessageProfile(
        name="dive_summary",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="reference_mesg",
                field_type="mesg_num",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="reference_index",
                field_type="message_index",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="avg_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            3: FieldProfile(
                field_name="max_depth",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="0 if above water",
            ),
            4: FieldProfile(
                field_name="surface_interval",
                field_type="uint32",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time since end of last dive",
            ),
            5: FieldProfile(
                field_name="start_cns",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="end_cns",
                field_type="uint8",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            7: FieldProfile(
                field_name="start_n2",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            8: FieldProfile(
                field_name="end_n2",
                field_type="uint16",
                array=False,
                components=None,
                scale=1,
                offset=None,
                units="percent",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            9: FieldProfile(
                field_name="o2_toxicity",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="OTUs",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            10: FieldProfile(
                field_name="dive_number",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            11: FieldProfile(
                field_name="bottom_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            12: FieldProfile(
                field_name="avg_pressure_sac",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="bar/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average pressure-based surface air consumption",
            ),
            13: FieldProfile(
                field_name="avg_volume_sac",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="L/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average volumetric surface air consumption",
            ),
            14: FieldProfile(
                field_name="avg_rmv",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="L/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average respiratory minute volume",
            ),
            15: FieldProfile(
                field_name="descent_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time to reach deepest level stop",
            ),
            16: FieldProfile(
                field_name="ascent_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time after leaving bottom until reaching surface",
            ),
            17: FieldProfile(
                field_name="avg_ascent_rate",
                field_type="sint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average ascent rate, not including descents or stops",
            ),
            22: FieldProfile(
                field_name="avg_descent_rate",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average descent rate, not including ascents or stops",
            ),
            23: FieldProfile(
                field_name="max_ascent_rate",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum ascent rate",
            ),
            24: FieldProfile(
                field_name="max_descent_rate",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Maximum descent rate",
            ),
            25: FieldProfile(
                field_name="hang_time",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time spent neither ascending nor descending",
            ),
        },
        group="OTHER MESSAGES",
    ),
    289: MessageProfile(
        name="aad_accel_features",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="time",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time interval length in seconds",
            ),
            1: FieldProfile(
                field_name="energy_total",
                field_type="uint32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total accelerometer energy in the interval",
            ),
            2: FieldProfile(
                field_name="zero_cross_cnt",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Count of zero crossings",
            ),
            3: FieldProfile(
                field_name="instance",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Instance ID of zero crossing algorithm",
            ),
            4: FieldProfile(
                field_name="time_above_threshold",
                field_type="uint16",
                array=False,
                components=None,
                scale=25,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total accelerometer time above threshold in the interval",
            ),
        },
        group="OTHER MESSAGES",
    ),
    78: MessageProfile(
        name="hrv",
        fields={
            0: FieldProfile(
                field_name="time",
                field_type="uint16",
                array="N",
                components=None,
                scale=1000,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Time between beats",
            )
        },
        group="OTHER MESSAGES",
    ),
    290: MessageProfile(
        name="beat_intervals",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Milliseconds past date_time",
            ),
            1: FieldProfile(
                field_name="time",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Array of millisecond times between beats",
            ),
        },
        group="OTHER MESSAGES",
    ),
    370: MessageProfile(
        name="hrv_status_summary",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="weekly_average",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="7 day RMSSD average over sleep",
            ),
            1: FieldProfile(
                field_name="last_night_average",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Last night RMSSD average over sleep",
            ),
            2: FieldProfile(
                field_name="last_night_5_min_high",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="5 minute high RMSSD value over sleep",
            ),
            3: FieldProfile(
                field_name="baseline_low_upper",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="3 week baseline, upper boundary of low HRV status",
            ),
            4: FieldProfile(
                field_name="baseline_balanced_lower",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="3 week baseline, lower boundary of balanced HRV status",
            ),
            5: FieldProfile(
                field_name="baseline_balanced_upper",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="3 week baseline, upper boundary of balanced HRV status",
            ),
            6: FieldProfile(
                field_name="status",
                field_type="hrv_status",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    371: MessageProfile(
        name="hrv_value",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="value",
                field_type="uint16",
                array=False,
                components=None,
                scale=128,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="5 minute RMSSD",
            ),
        },
        group="OTHER MESSAGES",
    ),
    372: MessageProfile(
        name="raw_bbi",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="timestamp_ms",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Millisecond resolution of the timestamp",
            ),
            1: FieldProfile(
                field_name="data",
                field_type="uint16",
                array="N",
                components=[
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                    "time",
                    "quality",
                    "gap",
                ],
                scale=None,
                offset=None,
                units=None,
                bits="14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1",
                accumulate=None,
                subfields=[],
                comment="1 bit for gap indicator, 1 bit "
                "for quality indicator, and 14 "
                "bits for Beat-to-Beat interval "
                "values in whole-integer "
                "millisecond resolution",
            ),
            2: FieldProfile(
                field_name="time",
                field_type="uint16",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units="ms",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Array of millisecond times between beats",
            ),
            3: FieldProfile(
                field_name="quality",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="1 = high confidence. 0 = low confidence. N/A when gap = 1",
            ),
            4: FieldProfile(
                field_name="gap",
                field_type="uint8",
                array="N",
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="1 = gap (time represents ms gap length). 0 = BBI data",
            ),
        },
        group="OTHER MESSAGES",
    ),
    297: MessageProfile(
        name="respiration_rate",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="respiration_rate",
                field_type="sint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="breaths/min",
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Breaths * 100 /min, -300 "
                "indicates invalid, -200 "
                "indicates large motion, -100 "
                "indicates off wrist",
            ),
        },
        group="OTHER MESSAGES",
    ),
    387: MessageProfile(
        name="chrono_shot_session",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="min_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="max_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="avg_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="shot_count",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            4: FieldProfile(
                field_name="projectile_type",
                field_type="projectile_type",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            5: FieldProfile(
                field_name="grain_weight",
                field_type="uint32",
                array=False,
                components=None,
                scale=10,
                offset=None,
                units="gr",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            6: FieldProfile(
                field_name="standard_deviation",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    388: MessageProfile(
        name="chrono_shot_data",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="shot_speed",
                field_type="uint32",
                array=False,
                components=None,
                scale=1000,
                offset=None,
                units="m/s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="shot_num",
                field_type="uint16",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    319: MessageProfile(
        name="tank_update",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="sensor",
                field_type="ant_channel_id",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="bar",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    323: MessageProfile(
        name="tank_summary",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units="s",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="sensor",
                field_type="ant_channel_id",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="start_pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="bar",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            2: FieldProfile(
                field_name="end_pressure",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="bar",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            3: FieldProfile(
                field_name="volume_used",
                field_type="uint32",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units="L",
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
        },
        group="OTHER MESSAGES",
    ),
    346: MessageProfile(
        name="sleep_assessment",
        fields={
            0: FieldProfile(
                field_name="combined_awake_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Average of awake_time_score and "
                "awakenings_count_score. If "
                "valid: 0 (worst) to 100 (best). "
                "If unknown: FIT_UINT8_INVALID.",
            ),
            1: FieldProfile(
                field_name="awake_time_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the total "
                "time spent awake between sleep. "
                "If valid: 0 (worst) to 100 "
                "(best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            2: FieldProfile(
                field_name="awakenings_count_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the number "
                "of awakenings that interrupt "
                "sleep. If valid: 0 (worst) to "
                "100 (best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            3: FieldProfile(
                field_name="deep_sleep_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the amount "
                "of deep sleep. If valid: 0 "
                "(worst) to 100 (best). If "
                "unknown: FIT_UINT8_INVALID.",
            ),
            4: FieldProfile(
                field_name="sleep_duration_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the quality "
                "of sleep based on sleep stages, "
                "heart-rate variability and "
                "possible awakenings during the "
                "night. If valid: 0 (worst) to "
                "100 (best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            5: FieldProfile(
                field_name="light_sleep_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the amount "
                "of light sleep. If valid: 0 "
                "(worst) to 100 (best). If "
                "unknown: FIT_UINT8_INVALID.",
            ),
            6: FieldProfile(
                field_name="overall_sleep_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Total score that summarizes the "
                "overall quality of sleep, "
                "combining sleep duration and "
                "quality. If valid: 0 (worst) to "
                "100 (best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            7: FieldProfile(
                field_name="sleep_quality_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the quality "
                "of sleep based on sleep stages, "
                "heart-rate variability and "
                "possible awakenings during the "
                "night. If valid: 0 (worst) to "
                "100 (best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            8: FieldProfile(
                field_name="sleep_recovery_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates stress and "
                "recovery during sleep. If valid: "
                "0 (worst) to 100 (best). If "
                "unknown: FIT_UINT8_INVALID.",
            ),
            9: FieldProfile(
                field_name="rem_sleep_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the amount "
                "of REM sleep. If valid: 0 "
                "(worst) to 100 (best). If "
                "unknown: FIT_UINT8_INVALID.",
            ),
            10: FieldProfile(
                field_name="sleep_restlessness_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the amount "
                "of restlessness during sleep. "
                "If valid: 0 (worst) to 100 "
                "(best). If unknown: "
                "FIT_UINT8_INVALID.",
            ),
            11: FieldProfile(
                field_name="awakenings_count",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The number of awakenings during sleep.",
            ),
            14: FieldProfile(
                field_name="interruptions_score",
                field_type="uint8",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Score that evaluates the sleep "
                "interruptions. If valid: 0 "
                "(worst) to 100 (best). If "
                "unknown: FIT_UINT8_INVALID.",
            ),
            15: FieldProfile(
                field_name="average_stress_during_sleep",
                field_type="uint16",
                array=False,
                components=None,
                scale=100,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Excludes stress during awake periods in the sleep window",
            ),
        },
        group="OTHER MESSAGES",
    ),
    398: MessageProfile(
        name="skin_temp_overnight",
        fields={
            253: FieldProfile(
                field_name="timestamp",
                field_type="date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            0: FieldProfile(
                field_name="local_timestamp",
                field_type="local_date_time",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment=None,
            ),
            1: FieldProfile(
                field_name="average_deviation",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The average overnight deviation "
                "from baseline temperature in "
                "degrees C",
            ),
            2: FieldProfile(
                field_name="average_7_day_deviation",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="The average 7 day overnight "
                "deviation from baseline "
                "temperature in degrees C",
            ),
            4: FieldProfile(
                field_name="nightly_value",
                field_type="float32",
                array=False,
                components=None,
                scale=None,
                offset=None,
                units=None,
                bits=None,
                accumulate=None,
                subfields=[],
                comment="Final overnight temperature value",
            ),
        },
        group="OTHER MESSAGES",
    ),
}
