// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: igpsport/device_information.proto

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class DeviceInformation {
  private DeviceInformation() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code DeviceCategoryType}
   */
  public enum DeviceCategoryType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>DEVICE_CYCLE_COMPUTER = 0;</code>
     */
    DEVICE_CYCLE_COMPUTER(0),
    /**
     * <code>DEVICE_ACCESSORY = 1;</code>
     */
    DEVICE_ACCESSORY(1),
    /**
     * <code>DEVICE_WATCH = 2;</code>
     */
    DEVICE_WATCH(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>DEVICE_CYCLE_COMPUTER = 0;</code>
     */
    public static final int DEVICE_CYCLE_COMPUTER_VALUE = 0;
    /**
     * <code>DEVICE_ACCESSORY = 1;</code>
     */
    public static final int DEVICE_ACCESSORY_VALUE = 1;
    /**
     * <code>DEVICE_WATCH = 2;</code>
     */
    public static final int DEVICE_WATCH_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static DeviceCategoryType valueOf(int value) {
      return forNumber(value);
    }

    public static DeviceCategoryType forNumber(int value) {
      switch (value) {
        case 0: return DEVICE_CYCLE_COMPUTER;
        case 1: return DEVICE_ACCESSORY;
        case 2: return DEVICE_WATCH;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DeviceCategoryType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        DeviceCategoryType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DeviceCategoryType>() {
            @java.lang.Override
            public DeviceCategoryType findValueByNumber(int number) {
              return DeviceCategoryType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return DeviceCategoryTypeVerifier.INSTANCE;
    }

    private static final class DeviceCategoryTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new DeviceCategoryTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return DeviceCategoryType.forNumber(number) != null;
            }
          };

    private final int value;

    private DeviceCategoryType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DeviceCategoryType)
  }

  /**
   * Protobuf enum {@code FunctionType}
   */
  public enum FunctionType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>DATA_MANAGEMENT_MODULE = 0;</code>
     */
    DATA_MANAGEMENT_MODULE(0),
    /**
     * <code>DATA_MANAGEMENT_ACTIVITIES_FUNCTION = 1;</code>
     */
    DATA_MANAGEMENT_ACTIVITIES_FUNCTION(1),
    /**
     * <code>DATA_MANAGEMENT_ACTIVITIES_LIST_INFORMATION_FUNCTION = 2;</code>
     */
    DATA_MANAGEMENT_ACTIVITIES_LIST_INFORMATION_FUNCTION(2),
    /**
     * <code>DATA_MANAGEMENT_ROUTES_FUNCTION = 3;</code>
     */
    DATA_MANAGEMENT_ROUTES_FUNCTION(3),
    /**
     * <code>DATA_MANAGEMENT_WORKOUTS_FUNCTION = 4;</code>
     */
    DATA_MANAGEMENT_WORKOUTS_FUNCTION(4),
    /**
     * <code>DATA_MANAGEMENT_SYNC_SETTING_FUNCTION = 5;</code>
     */
    DATA_MANAGEMENT_SYNC_SETTING_FUNCTION(5),
    /**
     * <code>DEVICE_SETTINGS_MODULE = 6;</code>
     */
    DEVICE_SETTINGS_MODULE(6),
    /**
     * <code>PROMPT_FOR_DELETION_WHEN_THE_DEVICE_ACTIVE_FILE_IS_FULL = 7;</code>
     */
    PROMPT_FOR_DELETION_WHEN_THE_DEVICE_ACTIVE_FILE_IS_FULL(7),
    /**
     * <code>NOTIFICATION_MODULE = 31;</code>
     */
    NOTIFICATION_MODULE(31),
    /**
     * <code>NOTIFICATION_INCOMING_CALL_FUNCTION = 32;</code>
     */
    NOTIFICATION_INCOMING_CALL_FUNCTION(32),
    /**
     * <code>NOTIFICATION_INCOMING_MESSAGE_FUNCTION = 33;</code>
     */
    NOTIFICATION_INCOMING_MESSAGE_FUNCTION(33),
    /**
     * <code>NOTIFICATION_APP_FUNCTION = 34;</code>
     */
    NOTIFICATION_APP_FUNCTION(34),
    /**
     * <code>NOTIFICATION_READ_SWITCH_STATUS = 35;</code>
     */
    NOTIFICATION_READ_SWITCH_STATUS(35),
    /**
     * <code>NOTIFICATION_SUPPORT_CUSTOM_APP_SWITCH = 36;</code>
     */
    NOTIFICATION_SUPPORT_CUSTOM_APP_SWITCH(36),
    /**
     * <code>NOTIFICATION_SUPPORT_OTHER_SWITCH = 37;</code>
     */
    NOTIFICATION_SUPPORT_OTHER_SWITCH(37),
    /**
     * <code>NAVIGATION_MAP_MODULE = 51;</code>
     */
    NAVIGATION_MAP_MODULE(51),
    /**
     * <code>UNIT_MODULE = 71;</code>
     */
    UNIT_MODULE(71),
    /**
     * <code>UNIT_METRIC_FUNCTION = 72;</code>
     */
    UNIT_METRIC_FUNCTION(72),
    /**
     * <code>UNIT_IMPERIAL_FUNCTION = 73;</code>
     */
    UNIT_IMPERIAL_FUNCTION(73),
    /**
     * <code>UNIT_CUSTOMIZE_FUNCTION = 74;</code>
     */
    UNIT_CUSTOMIZE_FUNCTION(74),
    /**
     * <code>CYCLING_COMPUTER_CONFIG_MODULE = 91;</code>
     */
    CYCLING_COMPUTER_CONFIG_MODULE(91),
    /**
     * <code>KEY_FUNCTION_SET_SUB_MODULE = 92;</code>
     */
    KEY_FUNCTION_SET_SUB_MODULE(92),
    /**
     * <code>AUTO_FUNCTION_SET_SUB_MODULE = 93;</code>
     */
    AUTO_FUNCTION_SET_SUB_MODULE(93),
    /**
     * <code>AUTO_PAUSE_FUNCTION = 94;</code>
     */
    AUTO_PAUSE_FUNCTION(94),
    /**
     * <code>AUTO_RECORD_START_FUNCTION = 95;</code>
     */
    AUTO_RECORD_START_FUNCTION(95),
    /**
     * <code>AUTO_POWER_OFF_FUNCTION = 96;</code>
     */
    AUTO_POWER_OFF_FUNCTION(96),
    /**
     * <code>AUTO_SLEEP_FUNCTION = 97;</code>
     */
    AUTO_SLEEP_FUNCTION(97),
    /**
     * <code>AUTO_HOME_PAGE_BACK_FUNCTION = 98;</code>
     */
    AUTO_HOME_PAGE_BACK_FUNCTION(98),
    /**
     * <code>SMART_SAVE_FUNCTION = 99;</code>
     */
    SMART_SAVE_FUNCTION(99),
    /**
     * <code>ALARM_SET_SUB_MODULE = 100;</code>
     */
    ALARM_SET_SUB_MODULE(100),
    /**
     * <code>ALARM_RIDE_TIME_FUNCTION = 101;</code>
     */
    ALARM_RIDE_TIME_FUNCTION(101),
    /**
     * <code>ALARM_RIDE_DISTANCE_FUNCTION = 102;</code>
     */
    ALARM_RIDE_DISTANCE_FUNCTION(102),
    /**
     * <code>ALARM_HRM_FUNCTION = 103;</code>
     */
    ALARM_HRM_FUNCTION(103),
    /**
     * <code>ALARM_CAD_FUNCTION = 104;</code>
     */
    ALARM_CAD_FUNCTION(104),
    /**
     * <code>ALARM_PWR_FUNCTION = 105;</code>
     */
    ALARM_PWR_FUNCTION(105),
    /**
     * <code>ALARM_CALORIE_FUNCTION = 106;</code>
     */
    ALARM_CALORIE_FUNCTION(106),
    /**
     * <code>LAP_SET_SUB_MODULE = 107;</code>
     */
    LAP_SET_SUB_MODULE(107),
    /**
     * <code>SOUND_MODULE = 108;</code>
     */
    SOUND_MODULE(108),
    /**
     * <code>SOUND_KEY_FUNCTION = 109;</code>
     */
    SOUND_KEY_FUNCTION(109),
    /**
     * <code>SOUND_BEEP_FUNCTION = 110;</code>
     */
    SOUND_BEEP_FUNCTION(110),
    /**
     * <code>SOUND_BEEP_MULTIPLE_CHOICE_FUNCTION = 555;</code>
     */
    SOUND_BEEP_MULTIPLE_CHOICE_FUNCTION(555),
    /**
     * <code>UPLOAD_LOG_MODULE = 111;</code>
     */
    UPLOAD_LOG_MODULE(111),
    /**
     * <code>AUTO_RECORD_START_SUPPORT_THRESHOLD = 112;</code>
     */
    AUTO_RECORD_START_SUPPORT_THRESHOLD(112),
    /**
     * <code>AUTO_PAUSE_SUPPORT_THRESHOLD = 113;</code>
     */
    AUTO_PAUSE_SUPPORT_THRESHOLD(113),
    /**
     * <code>AUTO_FUNCTION_SET_SUB_MODULE_520 = 114;</code>
     */
    AUTO_FUNCTION_SET_SUB_MODULE_520(114),
    /**
     * <code>WEATHER_TEST_MODULE = 141;</code>
     */
    WEATHER_TEST_MODULE(141),
    /**
     * <code>ROUTES_MODULE = 161;</code>
     */
    ROUTES_MODULE(161),
    /**
     * <code>ROUTE_SUPPORT_DIFFERENCE_ALGORITHM = 162;</code>
     */
    ROUTE_SUPPORT_DIFFERENCE_ALGORITHM(162),
    /**
     * <code>ROUTE_SUPPORT_ONLY_SINGLE_ROUTE = 163;</code>
     */
    ROUTE_SUPPORT_ONLY_SINGLE_ROUTE(163),
    /**
     * <code>ROUTE_SUPPORT_AUXILIARY_POINT = 164;</code>
     */
    ROUTE_SUPPORT_AUXILIARY_POINT(164),
    /**
     * <code>BROADCAST_MODULE = 181;</code>
     */
    BROADCAST_MODULE(181),
    /**
     * <code>GROUP_TRACK_MODULE = 182;</code>
     */
    GROUP_TRACK_MODULE(182),
    /**
     * <code>SENSORS_MODULE = 201;</code>
     */
    SENSORS_MODULE(201),
    /**
     * <code>CRANK_LENGTH_PLUS = 202;</code>
     */
    CRANK_LENGTH_PLUS(202),
    /**
     * <code>POWER_CALIBRATION = 203;</code>
     */
    POWER_CALIBRATION(203),
    /**
     * <code>SUPPORT_SENSOR_SYNC = 204;</code>
     */
    SUPPORT_SENSOR_SYNC(204),
    /**
     * <code>FIRMWARE_DETECTION_MODULE = 221;</code>
     */
    FIRMWARE_DETECTION_MODULE(221),
    /**
     * <code>WIFI_MODULE = 251;</code>
     */
    WIFI_MODULE(251),
    /**
     * <code>PAGE_SETTING_MODULE = 281;</code>
     */
    PAGE_SETTING_MODULE(281),
    /**
     * <code>PAGE_SETTING_NAME_MAPPING = 282;</code>
     */
    PAGE_SETTING_NAME_MAPPING(282),
    /**
     * <code>PAGE_COMPASS = 283;</code>
     */
    PAGE_COMPASS(283),
    /**
     * <code>TRAINING_MODULE = 311;</code>
     */
    TRAINING_MODULE(311),
    /**
     * <code>BIKE_SETTING_MODULE = 341;</code>
     */
    BIKE_SETTING_MODULE(341),
    /**
     * <code>PERSONAL_SETTINGS_MODULE = 371;</code>
     */
    PERSONAL_SETTINGS_MODULE(371),
    /**
     * <code>FONT_DOWNLOAD_MODULE = 401;</code>
     */
    FONT_DOWNLOAD_MODULE(401),
    /**
     * <code>ANTI_THEFT_ALARM_MODULE = 421;</code>
     */
    ANTI_THEFT_ALARM_MODULE(421),
    /**
     * <code>SEND_WEATHER_INFORMATION_MODULE = 451;</code>
     */
    SEND_WEATHER_INFORMATION_MODULE(451),
    /**
     * <code>SEND_AGPS_MODULE = 452;</code>
     */
    SEND_AGPS_MODULE(452),
    /**
     * <code>SEND_USER_INFORMATION_MODULE = 453;</code>
     */
    SEND_USER_INFORMATION_MODULE(453),
    /**
     * <code>SEND_OFFLINE_AGPS_MODULE = 454;</code>
     */
    SEND_OFFLINE_AGPS_MODULE(454),
    /**
     * <code>REMOVE_DEVICE_MODULE = 501;</code>
     */
    REMOVE_DEVICE_MODULE(501),
    /**
     * <code>MODEL_MANAGEMENT_MODULE = 502;</code>
     */
    MODEL_MANAGEMENT_MODULE(502),
    /**
     * <code>EDIT_MODEL_MANAGEMENT_MODULE = 503;</code>
     */
    EDIT_MODEL_MANAGEMENT_MODULE(503),
    /**
     * <code>THEME_MANAGEMENT_MODULE = 511;</code>
     */
    THEME_MANAGEMENT_MODULE(511),
    /**
     * <code>DISPLAY_SETTING_MODULE = 521;</code>
     */
    DISPLAY_SETTING_MODULE(521),
    /**
     * <code>ALTITUDE_CALIBRATION_MODULE = 522;</code>
     */
    ALTITUDE_CALIBRATION_MODULE(522),
    /**
     * <code>LOCATION_POINT_MANAGEMENT_MODULE = 523;</code>
     */
    LOCATION_POINT_MANAGEMENT_MODULE(523),
    /**
     * <code>OTHER_SETTING_MODULE = 531;</code>
     */
    OTHER_SETTING_MODULE(531),
    /**
     * <code>CALCULATE_AVERAGE_CADENCE_FILTER_0_VALUE = 532;</code>
     */
    CALCULATE_AVERAGE_CADENCE_FILTER_0_VALUE(532),
    /**
     * <code>CALCULATE_AVERAGE_POWER_FILTER_0_VALUE = 533;</code>
     */
    CALCULATE_AVERAGE_POWER_FILTER_0_VALUE(533),
    /**
     * <code>MOTION_STATE_DETECTION = 534;</code>
     */
    MOTION_STATE_DETECTION(534),
    /**
     * <code>PRESS_TO_SWITCH_SPORT_MODE = 535;</code>
     */
    PRESS_TO_SWITCH_SPORT_MODE(535),
    /**
     * <code>AUTO_START_CUSTOM = 541;</code>
     */
    AUTO_START_CUSTOM(541),
    /**
     * <code>AUTO_START_ALERT = 542;</code>
     */
    AUTO_START_ALERT(542),
    /**
     * <code>AUTO_PAGE_SLOW = 543;</code>
     */
    AUTO_PAGE_SLOW(543),
    /**
     * <code>AUTO_PAGE_NORMAL = 544;</code>
     */
    AUTO_PAGE_NORMAL(544),
    /**
     * <code>POWER_SAVING_MODEL = 545;</code>
     */
    POWER_SAVING_MODEL(545),
    /**
     * <code>SMART_POWER_SAVING_FUNCTIONALITY = 546;</code>
     */
    SMART_POWER_SAVING_FUNCTIONALITY(546),
    /**
     * <code>BLE_MAP_MODULE = 547;</code>
     */
    BLE_MAP_MODULE(547),
    /**
     * <code>ALARM_SPEED_FUNCTION = 548;</code>
     */
    ALARM_SPEED_FUNCTION(548),
    /**
     * <code>READ_SN_FUNCTION = 549;</code>
     */
    READ_SN_FUNCTION(549),
    /**
     * <code>HR_DEVICE = 550;</code>
     */
    HR_DEVICE(550),
    /**
     * <code>SPD_DEVICE = 551;</code>
     */
    SPD_DEVICE(551),
    /**
     * <code>CAD_DEVICE = 552;</code>
     */
    CAD_DEVICE(552),
    /**
     * <code>ADVANCED_HR_DEVICE = 553;</code>
     */
    ADVANCED_HR_DEVICE(553),
    /**
     * <code>RADAR_DEVICE = 554;</code>
     */
    RADAR_DEVICE(554),
    /**
     * <code>POWER_MANAGEMENT_MODULE = 556;</code>
     */
    POWER_MANAGEMENT_MODULE(556),
    /**
     * <code>LIGHT_DEVICE = 557;</code>
     */
    LIGHT_DEVICE(557),
    /**
     * <code>SUPPORT_STAGE = 601;</code>
     */
    SUPPORT_STAGE(601),
    /**
     * <code>VITALITY_GOAL_MODULE = 2000;</code>
     */
    VITALITY_GOAL_MODULE(2000),
    /**
     * <code>HEALTH_DATA_DETECTION_MODULE = 2010;</code>
     */
    HEALTH_DATA_DETECTION_MODULE(2010),
    /**
     * <code>MY_HEALTH_DATA_MODULE = 2020;</code>
     */
    MY_HEALTH_DATA_MODULE(2020),
    /**
     * <code>DIAL_MODULE = 2030;</code>
     */
    DIAL_MODULE(2030),
    /**
     * <code>BLUETOOTH_CALL_MODULE = 2060;</code>
     */
    BLUETOOTH_CALL_MODULE(2060),
    /**
     * <code>SOS_CALL_MODULE = 2070;</code>
     */
    SOS_CALL_MODULE(2070),
    /**
     * <code>PREFERENCES_MODULE = 2080;</code>
     */
    PREFERENCES_MODULE(2080),
    /**
     * <code>WORLD_CLOCK = 2081;</code>
     */
    WORLD_CLOCK(2081),
    /**
     * <code>ALARM_DRINK_WATER_FUNCTION = 3001;</code>
     */
    ALARM_DRINK_WATER_FUNCTION(3001),
    /**
     * <code>ALARM_FOOD_FUNCTION = 3002;</code>
     */
    ALARM_FOOD_FUNCTION(3002),
    /**
     * <code>GO_MORE_FUNCTION = 3003;</code>
     */
    GO_MORE_FUNCTION(3003),
    /**
     * <code>TRAINING_PLAN_FUNCTION = 3004;</code>
     */
    TRAINING_PLAN_FUNCTION(3004),
    /**
     * <code>ACCESSORY_READ_SN_FUNCTION = 3005;</code>
     */
    ACCESSORY_READ_SN_FUNCTION(3005),
    /**
     * <code>ONE_KEY_NAVIGATION_FUNCTION = 3006;</code>
     */
    ONE_KEY_NAVIGATION_FUNCTION(3006),
    /**
     * <code>READ_DEVICE_BATTERY_FUNCTION = 3007;</code>
     */
    READ_DEVICE_BATTERY_FUNCTION(3007),
    /**
     * <code>DEVICE_LOG = 3008;</code>
     */
    DEVICE_LOG(3008),
    /**
     * <code>PREFABRICATED_COURSES = 3009;</code>
     */
    PREFABRICATED_COURSES(3009),
    /**
     * <code>DEVICE_AVAILABLE_TIME = 3010;</code>
     */
    DEVICE_AVAILABLE_TIME(3010),
    /**
     * <code>DEVICE_CURRENT_MODE = 3011;</code>
     */
    DEVICE_CURRENT_MODE(3011),
    /**
     * <code>SUPPORT_LIGHT_MODE_QUICK_CARD = 3012;</code>
     */
    SUPPORT_LIGHT_MODE_QUICK_CARD(3012),
    /**
     * <code>CLOUD_DEVICE_SYNC = 3013;</code>
     */
    CLOUD_DEVICE_SYNC(3013),
    /**
     * <code>SUPPORT_MUSIC_CONTROL = 3014;</code>
     */
    SUPPORT_MUSIC_CONTROL(3014),
    /**
     * <code>ALARM_CORE_TEMPERATURE_FUNCTION = 3015;</code>
     */
    ALARM_CORE_TEMPERATURE_FUNCTION(3015),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>DATA_MANAGEMENT_MODULE = 0;</code>
     */
    public static final int DATA_MANAGEMENT_MODULE_VALUE = 0;
    /**
     * <code>DATA_MANAGEMENT_ACTIVITIES_FUNCTION = 1;</code>
     */
    public static final int DATA_MANAGEMENT_ACTIVITIES_FUNCTION_VALUE = 1;
    /**
     * <code>DATA_MANAGEMENT_ACTIVITIES_LIST_INFORMATION_FUNCTION = 2;</code>
     */
    public static final int DATA_MANAGEMENT_ACTIVITIES_LIST_INFORMATION_FUNCTION_VALUE = 2;
    /**
     * <code>DATA_MANAGEMENT_ROUTES_FUNCTION = 3;</code>
     */
    public static final int DATA_MANAGEMENT_ROUTES_FUNCTION_VALUE = 3;
    /**
     * <code>DATA_MANAGEMENT_WORKOUTS_FUNCTION = 4;</code>
     */
    public static final int DATA_MANAGEMENT_WORKOUTS_FUNCTION_VALUE = 4;
    /**
     * <code>DATA_MANAGEMENT_SYNC_SETTING_FUNCTION = 5;</code>
     */
    public static final int DATA_MANAGEMENT_SYNC_SETTING_FUNCTION_VALUE = 5;
    /**
     * <code>DEVICE_SETTINGS_MODULE = 6;</code>
     */
    public static final int DEVICE_SETTINGS_MODULE_VALUE = 6;
    /**
     * <code>PROMPT_FOR_DELETION_WHEN_THE_DEVICE_ACTIVE_FILE_IS_FULL = 7;</code>
     */
    public static final int PROMPT_FOR_DELETION_WHEN_THE_DEVICE_ACTIVE_FILE_IS_FULL_VALUE = 7;
    /**
     * <code>NOTIFICATION_MODULE = 31;</code>
     */
    public static final int NOTIFICATION_MODULE_VALUE = 31;
    /**
     * <code>NOTIFICATION_INCOMING_CALL_FUNCTION = 32;</code>
     */
    public static final int NOTIFICATION_INCOMING_CALL_FUNCTION_VALUE = 32;
    /**
     * <code>NOTIFICATION_INCOMING_MESSAGE_FUNCTION = 33;</code>
     */
    public static final int NOTIFICATION_INCOMING_MESSAGE_FUNCTION_VALUE = 33;
    /**
     * <code>NOTIFICATION_APP_FUNCTION = 34;</code>
     */
    public static final int NOTIFICATION_APP_FUNCTION_VALUE = 34;
    /**
     * <code>NOTIFICATION_READ_SWITCH_STATUS = 35;</code>
     */
    public static final int NOTIFICATION_READ_SWITCH_STATUS_VALUE = 35;
    /**
     * <code>NOTIFICATION_SUPPORT_CUSTOM_APP_SWITCH = 36;</code>
     */
    public static final int NOTIFICATION_SUPPORT_CUSTOM_APP_SWITCH_VALUE = 36;
    /**
     * <code>NOTIFICATION_SUPPORT_OTHER_SWITCH = 37;</code>
     */
    public static final int NOTIFICATION_SUPPORT_OTHER_SWITCH_VALUE = 37;
    /**
     * <code>NAVIGATION_MAP_MODULE = 51;</code>
     */
    public static final int NAVIGATION_MAP_MODULE_VALUE = 51;
    /**
     * <code>UNIT_MODULE = 71;</code>
     */
    public static final int UNIT_MODULE_VALUE = 71;
    /**
     * <code>UNIT_METRIC_FUNCTION = 72;</code>
     */
    public static final int UNIT_METRIC_FUNCTION_VALUE = 72;
    /**
     * <code>UNIT_IMPERIAL_FUNCTION = 73;</code>
     */
    public static final int UNIT_IMPERIAL_FUNCTION_VALUE = 73;
    /**
     * <code>UNIT_CUSTOMIZE_FUNCTION = 74;</code>
     */
    public static final int UNIT_CUSTOMIZE_FUNCTION_VALUE = 74;
    /**
     * <code>CYCLING_COMPUTER_CONFIG_MODULE = 91;</code>
     */
    public static final int CYCLING_COMPUTER_CONFIG_MODULE_VALUE = 91;
    /**
     * <code>KEY_FUNCTION_SET_SUB_MODULE = 92;</code>
     */
    public static final int KEY_FUNCTION_SET_SUB_MODULE_VALUE = 92;
    /**
     * <code>AUTO_FUNCTION_SET_SUB_MODULE = 93;</code>
     */
    public static final int AUTO_FUNCTION_SET_SUB_MODULE_VALUE = 93;
    /**
     * <code>AUTO_PAUSE_FUNCTION = 94;</code>
     */
    public static final int AUTO_PAUSE_FUNCTION_VALUE = 94;
    /**
     * <code>AUTO_RECORD_START_FUNCTION = 95;</code>
     */
    public static final int AUTO_RECORD_START_FUNCTION_VALUE = 95;
    /**
     * <code>AUTO_POWER_OFF_FUNCTION = 96;</code>
     */
    public static final int AUTO_POWER_OFF_FUNCTION_VALUE = 96;
    /**
     * <code>AUTO_SLEEP_FUNCTION = 97;</code>
     */
    public static final int AUTO_SLEEP_FUNCTION_VALUE = 97;
    /**
     * <code>AUTO_HOME_PAGE_BACK_FUNCTION = 98;</code>
     */
    public static final int AUTO_HOME_PAGE_BACK_FUNCTION_VALUE = 98;
    /**
     * <code>SMART_SAVE_FUNCTION = 99;</code>
     */
    public static final int SMART_SAVE_FUNCTION_VALUE = 99;
    /**
     * <code>ALARM_SET_SUB_MODULE = 100;</code>
     */
    public static final int ALARM_SET_SUB_MODULE_VALUE = 100;
    /**
     * <code>ALARM_RIDE_TIME_FUNCTION = 101;</code>
     */
    public static final int ALARM_RIDE_TIME_FUNCTION_VALUE = 101;
    /**
     * <code>ALARM_RIDE_DISTANCE_FUNCTION = 102;</code>
     */
    public static final int ALARM_RIDE_DISTANCE_FUNCTION_VALUE = 102;
    /**
     * <code>ALARM_HRM_FUNCTION = 103;</code>
     */
    public static final int ALARM_HRM_FUNCTION_VALUE = 103;
    /**
     * <code>ALARM_CAD_FUNCTION = 104;</code>
     */
    public static final int ALARM_CAD_FUNCTION_VALUE = 104;
    /**
     * <code>ALARM_PWR_FUNCTION = 105;</code>
     */
    public static final int ALARM_PWR_FUNCTION_VALUE = 105;
    /**
     * <code>ALARM_CALORIE_FUNCTION = 106;</code>
     */
    public static final int ALARM_CALORIE_FUNCTION_VALUE = 106;
    /**
     * <code>LAP_SET_SUB_MODULE = 107;</code>
     */
    public static final int LAP_SET_SUB_MODULE_VALUE = 107;
    /**
     * <code>SOUND_MODULE = 108;</code>
     */
    public static final int SOUND_MODULE_VALUE = 108;
    /**
     * <code>SOUND_KEY_FUNCTION = 109;</code>
     */
    public static final int SOUND_KEY_FUNCTION_VALUE = 109;
    /**
     * <code>SOUND_BEEP_FUNCTION = 110;</code>
     */
    public static final int SOUND_BEEP_FUNCTION_VALUE = 110;
    /**
     * <code>SOUND_BEEP_MULTIPLE_CHOICE_FUNCTION = 555;</code>
     */
    public static final int SOUND_BEEP_MULTIPLE_CHOICE_FUNCTION_VALUE = 555;
    /**
     * <code>UPLOAD_LOG_MODULE = 111;</code>
     */
    public static final int UPLOAD_LOG_MODULE_VALUE = 111;
    /**
     * <code>AUTO_RECORD_START_SUPPORT_THRESHOLD = 112;</code>
     */
    public static final int AUTO_RECORD_START_SUPPORT_THRESHOLD_VALUE = 112;
    /**
     * <code>AUTO_PAUSE_SUPPORT_THRESHOLD = 113;</code>
     */
    public static final int AUTO_PAUSE_SUPPORT_THRESHOLD_VALUE = 113;
    /**
     * <code>AUTO_FUNCTION_SET_SUB_MODULE_520 = 114;</code>
     */
    public static final int AUTO_FUNCTION_SET_SUB_MODULE_520_VALUE = 114;
    /**
     * <code>WEATHER_TEST_MODULE = 141;</code>
     */
    public static final int WEATHER_TEST_MODULE_VALUE = 141;
    /**
     * <code>ROUTES_MODULE = 161;</code>
     */
    public static final int ROUTES_MODULE_VALUE = 161;
    /**
     * <code>ROUTE_SUPPORT_DIFFERENCE_ALGORITHM = 162;</code>
     */
    public static final int ROUTE_SUPPORT_DIFFERENCE_ALGORITHM_VALUE = 162;
    /**
     * <code>ROUTE_SUPPORT_ONLY_SINGLE_ROUTE = 163;</code>
     */
    public static final int ROUTE_SUPPORT_ONLY_SINGLE_ROUTE_VALUE = 163;
    /**
     * <code>ROUTE_SUPPORT_AUXILIARY_POINT = 164;</code>
     */
    public static final int ROUTE_SUPPORT_AUXILIARY_POINT_VALUE = 164;
    /**
     * <code>BROADCAST_MODULE = 181;</code>
     */
    public static final int BROADCAST_MODULE_VALUE = 181;
    /**
     * <code>GROUP_TRACK_MODULE = 182;</code>
     */
    public static final int GROUP_TRACK_MODULE_VALUE = 182;
    /**
     * <code>SENSORS_MODULE = 201;</code>
     */
    public static final int SENSORS_MODULE_VALUE = 201;
    /**
     * <code>CRANK_LENGTH_PLUS = 202;</code>
     */
    public static final int CRANK_LENGTH_PLUS_VALUE = 202;
    /**
     * <code>POWER_CALIBRATION = 203;</code>
     */
    public static final int POWER_CALIBRATION_VALUE = 203;
    /**
     * <code>SUPPORT_SENSOR_SYNC = 204;</code>
     */
    public static final int SUPPORT_SENSOR_SYNC_VALUE = 204;
    /**
     * <code>FIRMWARE_DETECTION_MODULE = 221;</code>
     */
    public static final int FIRMWARE_DETECTION_MODULE_VALUE = 221;
    /**
     * <code>WIFI_MODULE = 251;</code>
     */
    public static final int WIFI_MODULE_VALUE = 251;
    /**
     * <code>PAGE_SETTING_MODULE = 281;</code>
     */
    public static final int PAGE_SETTING_MODULE_VALUE = 281;
    /**
     * <code>PAGE_SETTING_NAME_MAPPING = 282;</code>
     */
    public static final int PAGE_SETTING_NAME_MAPPING_VALUE = 282;
    /**
     * <code>PAGE_COMPASS = 283;</code>
     */
    public static final int PAGE_COMPASS_VALUE = 283;
    /**
     * <code>TRAINING_MODULE = 311;</code>
     */
    public static final int TRAINING_MODULE_VALUE = 311;
    /**
     * <code>BIKE_SETTING_MODULE = 341;</code>
     */
    public static final int BIKE_SETTING_MODULE_VALUE = 341;
    /**
     * <code>PERSONAL_SETTINGS_MODULE = 371;</code>
     */
    public static final int PERSONAL_SETTINGS_MODULE_VALUE = 371;
    /**
     * <code>FONT_DOWNLOAD_MODULE = 401;</code>
     */
    public static final int FONT_DOWNLOAD_MODULE_VALUE = 401;
    /**
     * <code>ANTI_THEFT_ALARM_MODULE = 421;</code>
     */
    public static final int ANTI_THEFT_ALARM_MODULE_VALUE = 421;
    /**
     * <code>SEND_WEATHER_INFORMATION_MODULE = 451;</code>
     */
    public static final int SEND_WEATHER_INFORMATION_MODULE_VALUE = 451;
    /**
     * <code>SEND_AGPS_MODULE = 452;</code>
     */
    public static final int SEND_AGPS_MODULE_VALUE = 452;
    /**
     * <code>SEND_USER_INFORMATION_MODULE = 453;</code>
     */
    public static final int SEND_USER_INFORMATION_MODULE_VALUE = 453;
    /**
     * <code>SEND_OFFLINE_AGPS_MODULE = 454;</code>
     */
    public static final int SEND_OFFLINE_AGPS_MODULE_VALUE = 454;
    /**
     * <code>REMOVE_DEVICE_MODULE = 501;</code>
     */
    public static final int REMOVE_DEVICE_MODULE_VALUE = 501;
    /**
     * <code>MODEL_MANAGEMENT_MODULE = 502;</code>
     */
    public static final int MODEL_MANAGEMENT_MODULE_VALUE = 502;
    /**
     * <code>EDIT_MODEL_MANAGEMENT_MODULE = 503;</code>
     */
    public static final int EDIT_MODEL_MANAGEMENT_MODULE_VALUE = 503;
    /**
     * <code>THEME_MANAGEMENT_MODULE = 511;</code>
     */
    public static final int THEME_MANAGEMENT_MODULE_VALUE = 511;
    /**
     * <code>DISPLAY_SETTING_MODULE = 521;</code>
     */
    public static final int DISPLAY_SETTING_MODULE_VALUE = 521;
    /**
     * <code>ALTITUDE_CALIBRATION_MODULE = 522;</code>
     */
    public static final int ALTITUDE_CALIBRATION_MODULE_VALUE = 522;
    /**
     * <code>LOCATION_POINT_MANAGEMENT_MODULE = 523;</code>
     */
    public static final int LOCATION_POINT_MANAGEMENT_MODULE_VALUE = 523;
    /**
     * <code>OTHER_SETTING_MODULE = 531;</code>
     */
    public static final int OTHER_SETTING_MODULE_VALUE = 531;
    /**
     * <code>CALCULATE_AVERAGE_CADENCE_FILTER_0_VALUE = 532;</code>
     */
    public static final int CALCULATE_AVERAGE_CADENCE_FILTER_0_VALUE_VALUE = 532;
    /**
     * <code>CALCULATE_AVERAGE_POWER_FILTER_0_VALUE = 533;</code>
     */
    public static final int CALCULATE_AVERAGE_POWER_FILTER_0_VALUE_VALUE = 533;
    /**
     * <code>MOTION_STATE_DETECTION = 534;</code>
     */
    public static final int MOTION_STATE_DETECTION_VALUE = 534;
    /**
     * <code>PRESS_TO_SWITCH_SPORT_MODE = 535;</code>
     */
    public static final int PRESS_TO_SWITCH_SPORT_MODE_VALUE = 535;
    /**
     * <code>AUTO_START_CUSTOM = 541;</code>
     */
    public static final int AUTO_START_CUSTOM_VALUE = 541;
    /**
     * <code>AUTO_START_ALERT = 542;</code>
     */
    public static final int AUTO_START_ALERT_VALUE = 542;
    /**
     * <code>AUTO_PAGE_SLOW = 543;</code>
     */
    public static final int AUTO_PAGE_SLOW_VALUE = 543;
    /**
     * <code>AUTO_PAGE_NORMAL = 544;</code>
     */
    public static final int AUTO_PAGE_NORMAL_VALUE = 544;
    /**
     * <code>POWER_SAVING_MODEL = 545;</code>
     */
    public static final int POWER_SAVING_MODEL_VALUE = 545;
    /**
     * <code>SMART_POWER_SAVING_FUNCTIONALITY = 546;</code>
     */
    public static final int SMART_POWER_SAVING_FUNCTIONALITY_VALUE = 546;
    /**
     * <code>BLE_MAP_MODULE = 547;</code>
     */
    public static final int BLE_MAP_MODULE_VALUE = 547;
    /**
     * <code>ALARM_SPEED_FUNCTION = 548;</code>
     */
    public static final int ALARM_SPEED_FUNCTION_VALUE = 548;
    /**
     * <code>READ_SN_FUNCTION = 549;</code>
     */
    public static final int READ_SN_FUNCTION_VALUE = 549;
    /**
     * <code>HR_DEVICE = 550;</code>
     */
    public static final int HR_DEVICE_VALUE = 550;
    /**
     * <code>SPD_DEVICE = 551;</code>
     */
    public static final int SPD_DEVICE_VALUE = 551;
    /**
     * <code>CAD_DEVICE = 552;</code>
     */
    public static final int CAD_DEVICE_VALUE = 552;
    /**
     * <code>ADVANCED_HR_DEVICE = 553;</code>
     */
    public static final int ADVANCED_HR_DEVICE_VALUE = 553;
    /**
     * <code>RADAR_DEVICE = 554;</code>
     */
    public static final int RADAR_DEVICE_VALUE = 554;
    /**
     * <code>POWER_MANAGEMENT_MODULE = 556;</code>
     */
    public static final int POWER_MANAGEMENT_MODULE_VALUE = 556;
    /**
     * <code>LIGHT_DEVICE = 557;</code>
     */
    public static final int LIGHT_DEVICE_VALUE = 557;
    /**
     * <code>SUPPORT_STAGE = 601;</code>
     */
    public static final int SUPPORT_STAGE_VALUE = 601;
    /**
     * <code>VITALITY_GOAL_MODULE = 2000;</code>
     */
    public static final int VITALITY_GOAL_MODULE_VALUE = 2000;
    /**
     * <code>HEALTH_DATA_DETECTION_MODULE = 2010;</code>
     */
    public static final int HEALTH_DATA_DETECTION_MODULE_VALUE = 2010;
    /**
     * <code>MY_HEALTH_DATA_MODULE = 2020;</code>
     */
    public static final int MY_HEALTH_DATA_MODULE_VALUE = 2020;
    /**
     * <code>DIAL_MODULE = 2030;</code>
     */
    public static final int DIAL_MODULE_VALUE = 2030;
    /**
     * <code>BLUETOOTH_CALL_MODULE = 2060;</code>
     */
    public static final int BLUETOOTH_CALL_MODULE_VALUE = 2060;
    /**
     * <code>SOS_CALL_MODULE = 2070;</code>
     */
    public static final int SOS_CALL_MODULE_VALUE = 2070;
    /**
     * <code>PREFERENCES_MODULE = 2080;</code>
     */
    public static final int PREFERENCES_MODULE_VALUE = 2080;
    /**
     * <code>WORLD_CLOCK = 2081;</code>
     */
    public static final int WORLD_CLOCK_VALUE = 2081;
    /**
     * <code>ALARM_DRINK_WATER_FUNCTION = 3001;</code>
     */
    public static final int ALARM_DRINK_WATER_FUNCTION_VALUE = 3001;
    /**
     * <code>ALARM_FOOD_FUNCTION = 3002;</code>
     */
    public static final int ALARM_FOOD_FUNCTION_VALUE = 3002;
    /**
     * <code>GO_MORE_FUNCTION = 3003;</code>
     */
    public static final int GO_MORE_FUNCTION_VALUE = 3003;
    /**
     * <code>TRAINING_PLAN_FUNCTION = 3004;</code>
     */
    public static final int TRAINING_PLAN_FUNCTION_VALUE = 3004;
    /**
     * <code>ACCESSORY_READ_SN_FUNCTION = 3005;</code>
     */
    public static final int ACCESSORY_READ_SN_FUNCTION_VALUE = 3005;
    /**
     * <code>ONE_KEY_NAVIGATION_FUNCTION = 3006;</code>
     */
    public static final int ONE_KEY_NAVIGATION_FUNCTION_VALUE = 3006;
    /**
     * <code>READ_DEVICE_BATTERY_FUNCTION = 3007;</code>
     */
    public static final int READ_DEVICE_BATTERY_FUNCTION_VALUE = 3007;
    /**
     * <code>DEVICE_LOG = 3008;</code>
     */
    public static final int DEVICE_LOG_VALUE = 3008;
    /**
     * <code>PREFABRICATED_COURSES = 3009;</code>
     */
    public static final int PREFABRICATED_COURSES_VALUE = 3009;
    /**
     * <code>DEVICE_AVAILABLE_TIME = 3010;</code>
     */
    public static final int DEVICE_AVAILABLE_TIME_VALUE = 3010;
    /**
     * <code>DEVICE_CURRENT_MODE = 3011;</code>
     */
    public static final int DEVICE_CURRENT_MODE_VALUE = 3011;
    /**
     * <code>SUPPORT_LIGHT_MODE_QUICK_CARD = 3012;</code>
     */
    public static final int SUPPORT_LIGHT_MODE_QUICK_CARD_VALUE = 3012;
    /**
     * <code>CLOUD_DEVICE_SYNC = 3013;</code>
     */
    public static final int CLOUD_DEVICE_SYNC_VALUE = 3013;
    /**
     * <code>SUPPORT_MUSIC_CONTROL = 3014;</code>
     */
    public static final int SUPPORT_MUSIC_CONTROL_VALUE = 3014;
    /**
     * <code>ALARM_CORE_TEMPERATURE_FUNCTION = 3015;</code>
     */
    public static final int ALARM_CORE_TEMPERATURE_FUNCTION_VALUE = 3015;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static FunctionType valueOf(int value) {
      return forNumber(value);
    }

    public static FunctionType forNumber(int value) {
      switch (value) {
        case 0: return DATA_MANAGEMENT_MODULE;
        case 1: return DATA_MANAGEMENT_ACTIVITIES_FUNCTION;
        case 2: return DATA_MANAGEMENT_ACTIVITIES_LIST_INFORMATION_FUNCTION;
        case 3: return DATA_MANAGEMENT_ROUTES_FUNCTION;
        case 4: return DATA_MANAGEMENT_WORKOUTS_FUNCTION;
        case 5: return DATA_MANAGEMENT_SYNC_SETTING_FUNCTION;
        case 6: return DEVICE_SETTINGS_MODULE;
        case 7: return PROMPT_FOR_DELETION_WHEN_THE_DEVICE_ACTIVE_FILE_IS_FULL;
        case 31: return NOTIFICATION_MODULE;
        case 32: return NOTIFICATION_INCOMING_CALL_FUNCTION;
        case 33: return NOTIFICATION_INCOMING_MESSAGE_FUNCTION;
        case 34: return NOTIFICATION_APP_FUNCTION;
        case 35: return NOTIFICATION_READ_SWITCH_STATUS;
        case 36: return NOTIFICATION_SUPPORT_CUSTOM_APP_SWITCH;
        case 37: return NOTIFICATION_SUPPORT_OTHER_SWITCH;
        case 51: return NAVIGATION_MAP_MODULE;
        case 71: return UNIT_MODULE;
        case 72: return UNIT_METRIC_FUNCTION;
        case 73: return UNIT_IMPERIAL_FUNCTION;
        case 74: return UNIT_CUSTOMIZE_FUNCTION;
        case 91: return CYCLING_COMPUTER_CONFIG_MODULE;
        case 92: return KEY_FUNCTION_SET_SUB_MODULE;
        case 93: return AUTO_FUNCTION_SET_SUB_MODULE;
        case 94: return AUTO_PAUSE_FUNCTION;
        case 95: return AUTO_RECORD_START_FUNCTION;
        case 96: return AUTO_POWER_OFF_FUNCTION;
        case 97: return AUTO_SLEEP_FUNCTION;
        case 98: return AUTO_HOME_PAGE_BACK_FUNCTION;
        case 99: return SMART_SAVE_FUNCTION;
        case 100: return ALARM_SET_SUB_MODULE;
        case 101: return ALARM_RIDE_TIME_FUNCTION;
        case 102: return ALARM_RIDE_DISTANCE_FUNCTION;
        case 103: return ALARM_HRM_FUNCTION;
        case 104: return ALARM_CAD_FUNCTION;
        case 105: return ALARM_PWR_FUNCTION;
        case 106: return ALARM_CALORIE_FUNCTION;
        case 107: return LAP_SET_SUB_MODULE;
        case 108: return SOUND_MODULE;
        case 109: return SOUND_KEY_FUNCTION;
        case 110: return SOUND_BEEP_FUNCTION;
        case 555: return SOUND_BEEP_MULTIPLE_CHOICE_FUNCTION;
        case 111: return UPLOAD_LOG_MODULE;
        case 112: return AUTO_RECORD_START_SUPPORT_THRESHOLD;
        case 113: return AUTO_PAUSE_SUPPORT_THRESHOLD;
        case 114: return AUTO_FUNCTION_SET_SUB_MODULE_520;
        case 141: return WEATHER_TEST_MODULE;
        case 161: return ROUTES_MODULE;
        case 162: return ROUTE_SUPPORT_DIFFERENCE_ALGORITHM;
        case 163: return ROUTE_SUPPORT_ONLY_SINGLE_ROUTE;
        case 164: return ROUTE_SUPPORT_AUXILIARY_POINT;
        case 181: return BROADCAST_MODULE;
        case 182: return GROUP_TRACK_MODULE;
        case 201: return SENSORS_MODULE;
        case 202: return CRANK_LENGTH_PLUS;
        case 203: return POWER_CALIBRATION;
        case 204: return SUPPORT_SENSOR_SYNC;
        case 221: return FIRMWARE_DETECTION_MODULE;
        case 251: return WIFI_MODULE;
        case 281: return PAGE_SETTING_MODULE;
        case 282: return PAGE_SETTING_NAME_MAPPING;
        case 283: return PAGE_COMPASS;
        case 311: return TRAINING_MODULE;
        case 341: return BIKE_SETTING_MODULE;
        case 371: return PERSONAL_SETTINGS_MODULE;
        case 401: return FONT_DOWNLOAD_MODULE;
        case 421: return ANTI_THEFT_ALARM_MODULE;
        case 451: return SEND_WEATHER_INFORMATION_MODULE;
        case 452: return SEND_AGPS_MODULE;
        case 453: return SEND_USER_INFORMATION_MODULE;
        case 454: return SEND_OFFLINE_AGPS_MODULE;
        case 501: return REMOVE_DEVICE_MODULE;
        case 502: return MODEL_MANAGEMENT_MODULE;
        case 503: return EDIT_MODEL_MANAGEMENT_MODULE;
        case 511: return THEME_MANAGEMENT_MODULE;
        case 521: return DISPLAY_SETTING_MODULE;
        case 522: return ALTITUDE_CALIBRATION_MODULE;
        case 523: return LOCATION_POINT_MANAGEMENT_MODULE;
        case 531: return OTHER_SETTING_MODULE;
        case 532: return CALCULATE_AVERAGE_CADENCE_FILTER_0_VALUE;
        case 533: return CALCULATE_AVERAGE_POWER_FILTER_0_VALUE;
        case 534: return MOTION_STATE_DETECTION;
        case 535: return PRESS_TO_SWITCH_SPORT_MODE;
        case 541: return AUTO_START_CUSTOM;
        case 542: return AUTO_START_ALERT;
        case 543: return AUTO_PAGE_SLOW;
        case 544: return AUTO_PAGE_NORMAL;
        case 545: return POWER_SAVING_MODEL;
        case 546: return SMART_POWER_SAVING_FUNCTIONALITY;
        case 547: return BLE_MAP_MODULE;
        case 548: return ALARM_SPEED_FUNCTION;
        case 549: return READ_SN_FUNCTION;
        case 550: return HR_DEVICE;
        case 551: return SPD_DEVICE;
        case 552: return CAD_DEVICE;
        case 553: return ADVANCED_HR_DEVICE;
        case 554: return RADAR_DEVICE;
        case 556: return POWER_MANAGEMENT_MODULE;
        case 557: return LIGHT_DEVICE;
        case 601: return SUPPORT_STAGE;
        case 2000: return VITALITY_GOAL_MODULE;
        case 2010: return HEALTH_DATA_DETECTION_MODULE;
        case 2020: return MY_HEALTH_DATA_MODULE;
        case 2030: return DIAL_MODULE;
        case 2060: return BLUETOOTH_CALL_MODULE;
        case 2070: return SOS_CALL_MODULE;
        case 2080: return PREFERENCES_MODULE;
        case 2081: return WORLD_CLOCK;
        case 3001: return ALARM_DRINK_WATER_FUNCTION;
        case 3002: return ALARM_FOOD_FUNCTION;
        case 3003: return GO_MORE_FUNCTION;
        case 3004: return TRAINING_PLAN_FUNCTION;
        case 3005: return ACCESSORY_READ_SN_FUNCTION;
        case 3006: return ONE_KEY_NAVIGATION_FUNCTION;
        case 3007: return READ_DEVICE_BATTERY_FUNCTION;
        case 3008: return DEVICE_LOG;
        case 3009: return PREFABRICATED_COURSES;
        case 3010: return DEVICE_AVAILABLE_TIME;
        case 3011: return DEVICE_CURRENT_MODE;
        case 3012: return SUPPORT_LIGHT_MODE_QUICK_CARD;
        case 3013: return CLOUD_DEVICE_SYNC;
        case 3014: return SUPPORT_MUSIC_CONTROL;
        case 3015: return ALARM_CORE_TEMPERATURE_FUNCTION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FunctionType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        FunctionType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<FunctionType>() {
            @java.lang.Override
            public FunctionType findValueByNumber(int number) {
              return FunctionType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return FunctionTypeVerifier.INSTANCE;
    }

    private static final class FunctionTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FunctionTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return FunctionType.forNumber(number) != null;
            }
          };

    private final int value;

    private FunctionType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:FunctionType)
  }

  public interface DeviceInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DeviceInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> 
        getDeviceImageList();
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage getDeviceImage(int index);
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    int getDeviceImageCount();

    /**
     * <code>string devName = 2;</code>
     * @return The devName.
     */
    java.lang.String getDevName();
    /**
     * <code>string devName = 2;</code>
     * @return The bytes for devName.
     */
    com.google.protobuf.ByteString
        getDevNameBytes();

    /**
     * <code>string devCustomName = 3;</code>
     * @return The devCustomName.
     */
    java.lang.String getDevCustomName();
    /**
     * <code>string devCustomName = 3;</code>
     * @return The bytes for devCustomName.
     */
    com.google.protobuf.ByteString
        getDevCustomNameBytes();

    /**
     * <code>int32 generation = 4;</code>
     * @return The generation.
     */
    int getGeneration();

    /**
     * <code>bool isSupportProtoBuf = 5;</code>
     * @return The isSupportProtoBuf.
     */
    boolean getIsSupportProtoBuf();

    /**
     * <code>int32 sendFileMtuSize = 6;</code>
     * @return The sendFileMtuSize.
     */
    int getSendFileMtuSize();

    /**
     * <code>int32 dataReceiveTimeOut = 7;</code>
     * @return The dataReceiveTimeOut.
     */
    int getDataReceiveTimeOut();

    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return A list containing the functionTypeList.
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> getFunctionTypeListList();
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return The count of functionTypeList.
     */
    int getFunctionTypeListCount();
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param index The index of the element to return.
     * @return The functionTypeList at the given index.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType getFunctionTypeList(int index);
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return A list containing the enum numeric values on the wire for functionTypeList.
     */
    java.util.List<java.lang.Integer>
    getFunctionTypeListValueList();
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of functionTypeList at the given index.
     */
    int getFunctionTypeListValue(int index);

    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @return The manufacturerSpecificData.
     */
    java.lang.String getManufacturerSpecificData();
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @return The bytes for manufacturerSpecificData.
     */
    com.google.protobuf.ByteString
        getManufacturerSpecificDataBytes();

    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> 
        getMapManualList();
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual getMapManual(int index);
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    int getMapManualCount();

    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> 
        getPagingInformationList();
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation getPagingInformation(int index);
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    int getPagingInformationCount();

    /**
     * <code>bool isAccessory = 12;</code>
     * @return The isAccessory.
     */
    boolean getIsAccessory();

    /**
     * <code>int32 ephemerisEffectiveTime = 13;</code>
     * @return The ephemerisEffectiveTime.
     */
    int getEphemerisEffectiveTime();

    /**
     * <code>int32 deviceMaxActivityFileNum = 14;</code>
     * @return The deviceMaxActivityFileNum.
     */
    int getDeviceMaxActivityFileNum();

    /**
     * <code>int32 connectionMode = 15;</code>
     * @return The connectionMode.
     */
    int getConnectionMode();

    /**
     * <code>int32 androidSupportMinVersion = 16;</code>
     * @return The androidSupportMinVersion.
     */
    int getAndroidSupportMinVersion();

    /**
     * <code>int32 upperLimitOfMode = 17;</code>
     * @return The upperLimitOfMode.
     */
    int getUpperLimitOfMode();

    /**
     * <code>bool isShowRecommendDevice = 18;</code>
     * @return The isShowRecommendDevice.
     */
    boolean getIsShowRecommendDevice();

    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @return The enum numeric value on the wire for deviceCategoryType.
     */
    int getDeviceCategoryTypeValue();
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @return The deviceCategoryType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType getDeviceCategoryType();
  }
  /**
   * Protobuf type {@code DeviceInfo}
   */
  public  static final class DeviceInfo extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceInfo, DeviceInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:DeviceInfo)
      DeviceInfoOrBuilder {
    private DeviceInfo() {
      deviceImage_ = emptyProtobufList();
      devName_ = "";
      devCustomName_ = "";
      functionTypeList_ = emptyIntList();
      manufacturerSpecificData_ = "";
      mapManual_ = emptyProtobufList();
      pagingInformation_ = emptyProtobufList();
    }
    public static final int DEVICEIMAGE_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> deviceImage_;
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> getDeviceImageList() {
      return deviceImage_;
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImageOrBuilder> 
        getDeviceImageOrBuilderList() {
      return deviceImage_;
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    @java.lang.Override
    public int getDeviceImageCount() {
      return deviceImage_.size();
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage getDeviceImage(int index) {
      return deviceImage_.get(index);
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImageOrBuilder getDeviceImageOrBuilder(
        int index) {
      return deviceImage_.get(index);
    }
    private void ensureDeviceImageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> tmp = deviceImage_;
      if (!tmp.isModifiable()) {
        deviceImage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void setDeviceImage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
      value.getClass();
  ensureDeviceImageIsMutable();
      deviceImage_.set(index, value);
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void addDeviceImage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
      value.getClass();
  ensureDeviceImageIsMutable();
      deviceImage_.add(value);
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void addDeviceImage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
      value.getClass();
  ensureDeviceImageIsMutable();
      deviceImage_.add(index, value);
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void addAllDeviceImage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> values) {
      ensureDeviceImageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, deviceImage_);
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void clearDeviceImage() {
      deviceImage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .DeviceImage deviceImage = 1;</code>
     */
    private void removeDeviceImage(int index) {
      ensureDeviceImageIsMutable();
      deviceImage_.remove(index);
    }

    public static final int DEVNAME_FIELD_NUMBER = 2;
    private java.lang.String devName_;
    /**
     * <code>string devName = 2;</code>
     * @return The devName.
     */
    @java.lang.Override
    public java.lang.String getDevName() {
      return devName_;
    }
    /**
     * <code>string devName = 2;</code>
     * @return The bytes for devName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDevNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(devName_);
    }
    /**
     * <code>string devName = 2;</code>
     * @param value The devName to set.
     */
    private void setDevName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      devName_ = value;
    }
    /**
     * <code>string devName = 2;</code>
     */
    private void clearDevName() {
      
      devName_ = getDefaultInstance().getDevName();
    }
    /**
     * <code>string devName = 2;</code>
     * @param value The bytes for devName to set.
     */
    private void setDevNameBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      devName_ = value.toStringUtf8();
      
    }

    public static final int DEVCUSTOMNAME_FIELD_NUMBER = 3;
    private java.lang.String devCustomName_;
    /**
     * <code>string devCustomName = 3;</code>
     * @return The devCustomName.
     */
    @java.lang.Override
    public java.lang.String getDevCustomName() {
      return devCustomName_;
    }
    /**
     * <code>string devCustomName = 3;</code>
     * @return The bytes for devCustomName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDevCustomNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(devCustomName_);
    }
    /**
     * <code>string devCustomName = 3;</code>
     * @param value The devCustomName to set.
     */
    private void setDevCustomName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      devCustomName_ = value;
    }
    /**
     * <code>string devCustomName = 3;</code>
     */
    private void clearDevCustomName() {
      
      devCustomName_ = getDefaultInstance().getDevCustomName();
    }
    /**
     * <code>string devCustomName = 3;</code>
     * @param value The bytes for devCustomName to set.
     */
    private void setDevCustomNameBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      devCustomName_ = value.toStringUtf8();
      
    }

    public static final int GENERATION_FIELD_NUMBER = 4;
    private int generation_;
    /**
     * <code>int32 generation = 4;</code>
     * @return The generation.
     */
    @java.lang.Override
    public int getGeneration() {
      return generation_;
    }
    /**
     * <code>int32 generation = 4;</code>
     * @param value The generation to set.
     */
    private void setGeneration(int value) {
      
      generation_ = value;
    }
    /**
     * <code>int32 generation = 4;</code>
     */
    private void clearGeneration() {
      
      generation_ = 0;
    }

    public static final int ISSUPPORTPROTOBUF_FIELD_NUMBER = 5;
    private boolean isSupportProtoBuf_;
    /**
     * <code>bool isSupportProtoBuf = 5;</code>
     * @return The isSupportProtoBuf.
     */
    @java.lang.Override
    public boolean getIsSupportProtoBuf() {
      return isSupportProtoBuf_;
    }
    /**
     * <code>bool isSupportProtoBuf = 5;</code>
     * @param value The isSupportProtoBuf to set.
     */
    private void setIsSupportProtoBuf(boolean value) {
      
      isSupportProtoBuf_ = value;
    }
    /**
     * <code>bool isSupportProtoBuf = 5;</code>
     */
    private void clearIsSupportProtoBuf() {
      
      isSupportProtoBuf_ = false;
    }

    public static final int SENDFILEMTUSIZE_FIELD_NUMBER = 6;
    private int sendFileMtuSize_;
    /**
     * <code>int32 sendFileMtuSize = 6;</code>
     * @return The sendFileMtuSize.
     */
    @java.lang.Override
    public int getSendFileMtuSize() {
      return sendFileMtuSize_;
    }
    /**
     * <code>int32 sendFileMtuSize = 6;</code>
     * @param value The sendFileMtuSize to set.
     */
    private void setSendFileMtuSize(int value) {
      
      sendFileMtuSize_ = value;
    }
    /**
     * <code>int32 sendFileMtuSize = 6;</code>
     */
    private void clearSendFileMtuSize() {
      
      sendFileMtuSize_ = 0;
    }

    public static final int DATARECEIVETIMEOUT_FIELD_NUMBER = 7;
    private int dataReceiveTimeOut_;
    /**
     * <code>int32 dataReceiveTimeOut = 7;</code>
     * @return The dataReceiveTimeOut.
     */
    @java.lang.Override
    public int getDataReceiveTimeOut() {
      return dataReceiveTimeOut_;
    }
    /**
     * <code>int32 dataReceiveTimeOut = 7;</code>
     * @param value The dataReceiveTimeOut to set.
     */
    private void setDataReceiveTimeOut(int value) {
      
      dataReceiveTimeOut_ = value;
    }
    /**
     * <code>int32 dataReceiveTimeOut = 7;</code>
     */
    private void clearDataReceiveTimeOut() {
      
      dataReceiveTimeOut_ = 0;
    }

    public static final int FUNCTIONTYPELIST_FIELD_NUMBER = 8;
    private com.google.protobuf.Internal.IntList functionTypeList_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> functionTypeList_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType>() {
              @java.lang.Override
              public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType convert(java.lang.Integer from) {
                nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType.forNumber(from);
                return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType.UNRECOGNIZED : result;
              }
            };
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return A list containing the functionTypeList.
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> getFunctionTypeListList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType>(functionTypeList_, functionTypeList_converter_);
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return The count of functionTypeList.
     */
    @java.lang.Override
    public int getFunctionTypeListCount() {
      return functionTypeList_.size();
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param index The index of the element to return.
     * @return The functionTypeList at the given index.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType getFunctionTypeList(int index) {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType.forNumber(functionTypeList_.getInt(index));
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType.UNRECOGNIZED : result;
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @return A list containing the enum numeric values on the wire for functionTypeList.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getFunctionTypeListValueList() {
      return functionTypeList_;
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of functionTypeList at the given index.
     */
    @java.lang.Override
    public int getFunctionTypeListValue(int index) {
      return functionTypeList_.getInt(index);
    }
    private int functionTypeListMemoizedSerializedSize;
    private void ensureFunctionTypeListIsMutable() {
      com.google.protobuf.Internal.IntList tmp = functionTypeList_;
      if (!tmp.isModifiable()) {
        functionTypeList_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
      }
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param index The index to set the value at.
     * @param value The functionTypeList to set.
     */
    private void setFunctionTypeList(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType value) {
      value.getClass();
  ensureFunctionTypeListIsMutable();
      functionTypeList_.setInt(index, value.getNumber());
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param value The functionTypeList to add.
     */
    private void addFunctionTypeList(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType value) {
      value.getClass();
  ensureFunctionTypeListIsMutable();
      functionTypeList_.addInt(value.getNumber());
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param values The functionTypeList to add.
     */
    private void addAllFunctionTypeList(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> values) {
      ensureFunctionTypeListIsMutable();
      for (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType value : values) {
        functionTypeList_.addInt(value.getNumber());
      }
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     */
    private void clearFunctionTypeList() {
      functionTypeList_ = emptyIntList();
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param value The enum numeric value on the wire for functionTypeList to set.
     */
    private void setFunctionTypeListValue(
        int index, int value) {
      ensureFunctionTypeListIsMutable();
      functionTypeList_.setInt(index, value);
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param value The enum numeric value on the wire for functionTypeList to add.
     */
    private void addFunctionTypeListValue(int value) {
      ensureFunctionTypeListIsMutable();
      functionTypeList_.addInt(value);
    }
    /**
     * <code>repeated .FunctionType functionTypeList = 8;</code>
     * @param values The enum numeric values on the wire for functionTypeList to add.
     */
    private void addAllFunctionTypeListValue(
        java.lang.Iterable<java.lang.Integer> values) {
      ensureFunctionTypeListIsMutable();
      for (int value : values) {
        functionTypeList_.addInt(value);
      }
    }

    public static final int MANUFACTURERSPECIFICDATA_FIELD_NUMBER = 9;
    private java.lang.String manufacturerSpecificData_;
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @return The manufacturerSpecificData.
     */
    @java.lang.Override
    public java.lang.String getManufacturerSpecificData() {
      return manufacturerSpecificData_;
    }
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @return The bytes for manufacturerSpecificData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getManufacturerSpecificDataBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(manufacturerSpecificData_);
    }
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @param value The manufacturerSpecificData to set.
     */
    private void setManufacturerSpecificData(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      manufacturerSpecificData_ = value;
    }
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     */
    private void clearManufacturerSpecificData() {
      
      manufacturerSpecificData_ = getDefaultInstance().getManufacturerSpecificData();
    }
    /**
     * <code>string manufacturerSpecificData = 9;</code>
     * @param value The bytes for manufacturerSpecificData to set.
     */
    private void setManufacturerSpecificDataBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      manufacturerSpecificData_ = value.toStringUtf8();
      
    }

    public static final int MAPMANUAL_FIELD_NUMBER = 10;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> mapManual_;
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> getMapManualList() {
      return mapManual_;
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManualOrBuilder> 
        getMapManualOrBuilderList() {
      return mapManual_;
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    @java.lang.Override
    public int getMapManualCount() {
      return mapManual_.size();
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual getMapManual(int index) {
      return mapManual_.get(index);
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManualOrBuilder getMapManualOrBuilder(
        int index) {
      return mapManual_.get(index);
    }
    private void ensureMapManualIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> tmp = mapManual_;
      if (!tmp.isModifiable()) {
        mapManual_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void setMapManual(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
      value.getClass();
  ensureMapManualIsMutable();
      mapManual_.set(index, value);
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void addMapManual(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
      value.getClass();
  ensureMapManualIsMutable();
      mapManual_.add(value);
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void addMapManual(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
      value.getClass();
  ensureMapManualIsMutable();
      mapManual_.add(index, value);
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void addAllMapManual(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> values) {
      ensureMapManualIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, mapManual_);
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void clearMapManual() {
      mapManual_ = emptyProtobufList();
    }
    /**
     * <code>repeated .MapManual mapManual = 10;</code>
     */
    private void removeMapManual(int index) {
      ensureMapManualIsMutable();
      mapManual_.remove(index);
    }

    public static final int PAGINGINFORMATION_FIELD_NUMBER = 11;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> pagingInformation_;
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> getPagingInformationList() {
      return pagingInformation_;
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformationOrBuilder> 
        getPagingInformationOrBuilderList() {
      return pagingInformation_;
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    @java.lang.Override
    public int getPagingInformationCount() {
      return pagingInformation_.size();
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation getPagingInformation(int index) {
      return pagingInformation_.get(index);
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformationOrBuilder getPagingInformationOrBuilder(
        int index) {
      return pagingInformation_.get(index);
    }
    private void ensurePagingInformationIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> tmp = pagingInformation_;
      if (!tmp.isModifiable()) {
        pagingInformation_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void setPagingInformation(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
      value.getClass();
  ensurePagingInformationIsMutable();
      pagingInformation_.set(index, value);
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void addPagingInformation(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
      value.getClass();
  ensurePagingInformationIsMutable();
      pagingInformation_.add(value);
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void addPagingInformation(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
      value.getClass();
  ensurePagingInformationIsMutable();
      pagingInformation_.add(index, value);
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void addAllPagingInformation(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> values) {
      ensurePagingInformationIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, pagingInformation_);
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void clearPagingInformation() {
      pagingInformation_ = emptyProtobufList();
    }
    /**
     * <code>repeated .PagingInformation pagingInformation = 11;</code>
     */
    private void removePagingInformation(int index) {
      ensurePagingInformationIsMutable();
      pagingInformation_.remove(index);
    }

    public static final int ISACCESSORY_FIELD_NUMBER = 12;
    private boolean isAccessory_;
    /**
     * <code>bool isAccessory = 12;</code>
     * @return The isAccessory.
     */
    @java.lang.Override
    public boolean getIsAccessory() {
      return isAccessory_;
    }
    /**
     * <code>bool isAccessory = 12;</code>
     * @param value The isAccessory to set.
     */
    private void setIsAccessory(boolean value) {
      
      isAccessory_ = value;
    }
    /**
     * <code>bool isAccessory = 12;</code>
     */
    private void clearIsAccessory() {
      
      isAccessory_ = false;
    }

    public static final int EPHEMERISEFFECTIVETIME_FIELD_NUMBER = 13;
    private int ephemerisEffectiveTime_;
    /**
     * <code>int32 ephemerisEffectiveTime = 13;</code>
     * @return The ephemerisEffectiveTime.
     */
    @java.lang.Override
    public int getEphemerisEffectiveTime() {
      return ephemerisEffectiveTime_;
    }
    /**
     * <code>int32 ephemerisEffectiveTime = 13;</code>
     * @param value The ephemerisEffectiveTime to set.
     */
    private void setEphemerisEffectiveTime(int value) {
      
      ephemerisEffectiveTime_ = value;
    }
    /**
     * <code>int32 ephemerisEffectiveTime = 13;</code>
     */
    private void clearEphemerisEffectiveTime() {
      
      ephemerisEffectiveTime_ = 0;
    }

    public static final int DEVICEMAXACTIVITYFILENUM_FIELD_NUMBER = 14;
    private int deviceMaxActivityFileNum_;
    /**
     * <code>int32 deviceMaxActivityFileNum = 14;</code>
     * @return The deviceMaxActivityFileNum.
     */
    @java.lang.Override
    public int getDeviceMaxActivityFileNum() {
      return deviceMaxActivityFileNum_;
    }
    /**
     * <code>int32 deviceMaxActivityFileNum = 14;</code>
     * @param value The deviceMaxActivityFileNum to set.
     */
    private void setDeviceMaxActivityFileNum(int value) {
      
      deviceMaxActivityFileNum_ = value;
    }
    /**
     * <code>int32 deviceMaxActivityFileNum = 14;</code>
     */
    private void clearDeviceMaxActivityFileNum() {
      
      deviceMaxActivityFileNum_ = 0;
    }

    public static final int CONNECTIONMODE_FIELD_NUMBER = 15;
    private int connectionMode_;
    /**
     * <code>int32 connectionMode = 15;</code>
     * @return The connectionMode.
     */
    @java.lang.Override
    public int getConnectionMode() {
      return connectionMode_;
    }
    /**
     * <code>int32 connectionMode = 15;</code>
     * @param value The connectionMode to set.
     */
    private void setConnectionMode(int value) {
      
      connectionMode_ = value;
    }
    /**
     * <code>int32 connectionMode = 15;</code>
     */
    private void clearConnectionMode() {
      
      connectionMode_ = 0;
    }

    public static final int ANDROIDSUPPORTMINVERSION_FIELD_NUMBER = 16;
    private int androidSupportMinVersion_;
    /**
     * <code>int32 androidSupportMinVersion = 16;</code>
     * @return The androidSupportMinVersion.
     */
    @java.lang.Override
    public int getAndroidSupportMinVersion() {
      return androidSupportMinVersion_;
    }
    /**
     * <code>int32 androidSupportMinVersion = 16;</code>
     * @param value The androidSupportMinVersion to set.
     */
    private void setAndroidSupportMinVersion(int value) {
      
      androidSupportMinVersion_ = value;
    }
    /**
     * <code>int32 androidSupportMinVersion = 16;</code>
     */
    private void clearAndroidSupportMinVersion() {
      
      androidSupportMinVersion_ = 0;
    }

    public static final int UPPERLIMITOFMODE_FIELD_NUMBER = 17;
    private int upperLimitOfMode_;
    /**
     * <code>int32 upperLimitOfMode = 17;</code>
     * @return The upperLimitOfMode.
     */
    @java.lang.Override
    public int getUpperLimitOfMode() {
      return upperLimitOfMode_;
    }
    /**
     * <code>int32 upperLimitOfMode = 17;</code>
     * @param value The upperLimitOfMode to set.
     */
    private void setUpperLimitOfMode(int value) {
      
      upperLimitOfMode_ = value;
    }
    /**
     * <code>int32 upperLimitOfMode = 17;</code>
     */
    private void clearUpperLimitOfMode() {
      
      upperLimitOfMode_ = 0;
    }

    public static final int ISSHOWRECOMMENDDEVICE_FIELD_NUMBER = 18;
    private boolean isShowRecommendDevice_;
    /**
     * <code>bool isShowRecommendDevice = 18;</code>
     * @return The isShowRecommendDevice.
     */
    @java.lang.Override
    public boolean getIsShowRecommendDevice() {
      return isShowRecommendDevice_;
    }
    /**
     * <code>bool isShowRecommendDevice = 18;</code>
     * @param value The isShowRecommendDevice to set.
     */
    private void setIsShowRecommendDevice(boolean value) {
      
      isShowRecommendDevice_ = value;
    }
    /**
     * <code>bool isShowRecommendDevice = 18;</code>
     */
    private void clearIsShowRecommendDevice() {
      
      isShowRecommendDevice_ = false;
    }

    public static final int DEVICECATEGORYTYPE_FIELD_NUMBER = 19;
    private int deviceCategoryType_;
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @return The enum numeric value on the wire for deviceCategoryType.
     */
    @java.lang.Override
    public int getDeviceCategoryTypeValue() {
      return deviceCategoryType_;
    }
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @return The deviceCategoryType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType getDeviceCategoryType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType.forNumber(deviceCategoryType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType.UNRECOGNIZED : result;
    }
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @param value The enum numeric value on the wire for deviceCategoryType to set.
     */
    private void setDeviceCategoryTypeValue(int value) {
        deviceCategoryType_ = value;
    }
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     * @param value The deviceCategoryType to set.
     */
    private void setDeviceCategoryType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType value) {
      deviceCategoryType_ = value.getNumber();
      
    }
    /**
     * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
     */
    private void clearDeviceCategoryType() {
      
      deviceCategoryType_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code DeviceInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:DeviceInfo)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfoOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> getDeviceImageList() {
        return java.util.Collections.unmodifiableList(
            instance.getDeviceImageList());
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      @java.lang.Override
      public int getDeviceImageCount() {
        return instance.getDeviceImageCount();
      }/**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage getDeviceImage(int index) {
        return instance.getDeviceImage(index);
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder setDeviceImage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
        copyOnWrite();
        instance.setDeviceImage(index, value);
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder setDeviceImage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.Builder builderForValue) {
        copyOnWrite();
        instance.setDeviceImage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder addDeviceImage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
        copyOnWrite();
        instance.addDeviceImage(value);
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder addDeviceImage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage value) {
        copyOnWrite();
        instance.addDeviceImage(index, value);
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder addDeviceImage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.Builder builderForValue) {
        copyOnWrite();
        instance.addDeviceImage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder addDeviceImage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.Builder builderForValue) {
        copyOnWrite();
        instance.addDeviceImage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder addAllDeviceImage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> values) {
        copyOnWrite();
        instance.addAllDeviceImage(values);
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder clearDeviceImage() {
        copyOnWrite();
        instance.clearDeviceImage();
        return this;
      }
      /**
       * <code>repeated .DeviceImage deviceImage = 1;</code>
       */
      public Builder removeDeviceImage(int index) {
        copyOnWrite();
        instance.removeDeviceImage(index);
        return this;
      }

      /**
       * <code>string devName = 2;</code>
       * @return The devName.
       */
      @java.lang.Override
      public java.lang.String getDevName() {
        return instance.getDevName();
      }
      /**
       * <code>string devName = 2;</code>
       * @return The bytes for devName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDevNameBytes() {
        return instance.getDevNameBytes();
      }
      /**
       * <code>string devName = 2;</code>
       * @param value The devName to set.
       * @return This builder for chaining.
       */
      public Builder setDevName(
          java.lang.String value) {
        copyOnWrite();
        instance.setDevName(value);
        return this;
      }
      /**
       * <code>string devName = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDevName() {
        copyOnWrite();
        instance.clearDevName();
        return this;
      }
      /**
       * <code>string devName = 2;</code>
       * @param value The bytes for devName to set.
       * @return This builder for chaining.
       */
      public Builder setDevNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDevNameBytes(value);
        return this;
      }

      /**
       * <code>string devCustomName = 3;</code>
       * @return The devCustomName.
       */
      @java.lang.Override
      public java.lang.String getDevCustomName() {
        return instance.getDevCustomName();
      }
      /**
       * <code>string devCustomName = 3;</code>
       * @return The bytes for devCustomName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDevCustomNameBytes() {
        return instance.getDevCustomNameBytes();
      }
      /**
       * <code>string devCustomName = 3;</code>
       * @param value The devCustomName to set.
       * @return This builder for chaining.
       */
      public Builder setDevCustomName(
          java.lang.String value) {
        copyOnWrite();
        instance.setDevCustomName(value);
        return this;
      }
      /**
       * <code>string devCustomName = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDevCustomName() {
        copyOnWrite();
        instance.clearDevCustomName();
        return this;
      }
      /**
       * <code>string devCustomName = 3;</code>
       * @param value The bytes for devCustomName to set.
       * @return This builder for chaining.
       */
      public Builder setDevCustomNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDevCustomNameBytes(value);
        return this;
      }

      /**
       * <code>int32 generation = 4;</code>
       * @return The generation.
       */
      @java.lang.Override
      public int getGeneration() {
        return instance.getGeneration();
      }
      /**
       * <code>int32 generation = 4;</code>
       * @param value The generation to set.
       * @return This builder for chaining.
       */
      public Builder setGeneration(int value) {
        copyOnWrite();
        instance.setGeneration(value);
        return this;
      }
      /**
       * <code>int32 generation = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearGeneration() {
        copyOnWrite();
        instance.clearGeneration();
        return this;
      }

      /**
       * <code>bool isSupportProtoBuf = 5;</code>
       * @return The isSupportProtoBuf.
       */
      @java.lang.Override
      public boolean getIsSupportProtoBuf() {
        return instance.getIsSupportProtoBuf();
      }
      /**
       * <code>bool isSupportProtoBuf = 5;</code>
       * @param value The isSupportProtoBuf to set.
       * @return This builder for chaining.
       */
      public Builder setIsSupportProtoBuf(boolean value) {
        copyOnWrite();
        instance.setIsSupportProtoBuf(value);
        return this;
      }
      /**
       * <code>bool isSupportProtoBuf = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsSupportProtoBuf() {
        copyOnWrite();
        instance.clearIsSupportProtoBuf();
        return this;
      }

      /**
       * <code>int32 sendFileMtuSize = 6;</code>
       * @return The sendFileMtuSize.
       */
      @java.lang.Override
      public int getSendFileMtuSize() {
        return instance.getSendFileMtuSize();
      }
      /**
       * <code>int32 sendFileMtuSize = 6;</code>
       * @param value The sendFileMtuSize to set.
       * @return This builder for chaining.
       */
      public Builder setSendFileMtuSize(int value) {
        copyOnWrite();
        instance.setSendFileMtuSize(value);
        return this;
      }
      /**
       * <code>int32 sendFileMtuSize = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSendFileMtuSize() {
        copyOnWrite();
        instance.clearSendFileMtuSize();
        return this;
      }

      /**
       * <code>int32 dataReceiveTimeOut = 7;</code>
       * @return The dataReceiveTimeOut.
       */
      @java.lang.Override
      public int getDataReceiveTimeOut() {
        return instance.getDataReceiveTimeOut();
      }
      /**
       * <code>int32 dataReceiveTimeOut = 7;</code>
       * @param value The dataReceiveTimeOut to set.
       * @return This builder for chaining.
       */
      public Builder setDataReceiveTimeOut(int value) {
        copyOnWrite();
        instance.setDataReceiveTimeOut(value);
        return this;
      }
      /**
       * <code>int32 dataReceiveTimeOut = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataReceiveTimeOut() {
        copyOnWrite();
        instance.clearDataReceiveTimeOut();
        return this;
      }

      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @return A list containing the functionTypeList.
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> getFunctionTypeListList() {
        return instance.getFunctionTypeListList();
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @return The count of functionTypeList.
       */
      @java.lang.Override
      public int getFunctionTypeListCount() {
        return instance.getFunctionTypeListCount();
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param index The index of the element to return.
       * @return The functionTypeList at the given index.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType getFunctionTypeList(int index) {
        return instance.getFunctionTypeList(index);
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param index The index to set the value at.
       * @param value The functionTypeList to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionTypeList(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType value) {
        copyOnWrite();
        instance.setFunctionTypeList(index, value);
        return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param value The functionTypeList to add.
       * @return This builder for chaining.
       */
      public Builder addFunctionTypeList(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType value) {
        copyOnWrite();
        instance.addFunctionTypeList(value);
        return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param values The functionTypeList to add.
       * @return This builder for chaining.
       */
      public Builder addAllFunctionTypeList(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.FunctionType> values) {
        copyOnWrite();
        instance.addAllFunctionTypeList(values);  return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearFunctionTypeList() {
        copyOnWrite();
        instance.clearFunctionTypeList();
        return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @return A list containing the enum numeric values on the wire for functionTypeList.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
      getFunctionTypeListValueList() {
        return java.util.Collections.unmodifiableList(
            instance.getFunctionTypeListValueList());
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of functionTypeList at the given index.
       */
      @java.lang.Override
      public int getFunctionTypeListValue(int index) {
        return instance.getFunctionTypeListValue(index);
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for functionTypeList to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionTypeListValue(
          int index, int value) {
        copyOnWrite();
        instance.setFunctionTypeListValue(index, value);
        return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param value The enum numeric value on the wire for functionTypeList to add.
       * @return This builder for chaining.
       */
      public Builder addFunctionTypeListValue(int value) {
        instance.addFunctionTypeListValue(value);
        return this;
      }
      /**
       * <code>repeated .FunctionType functionTypeList = 8;</code>
       * @param values The enum numeric values on the wire for functionTypeList to add.
       * @return This builder for chaining.
       */
      public Builder addAllFunctionTypeListValue(
          java.lang.Iterable<java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllFunctionTypeListValue(values);
        return this;
      }

      /**
       * <code>string manufacturerSpecificData = 9;</code>
       * @return The manufacturerSpecificData.
       */
      @java.lang.Override
      public java.lang.String getManufacturerSpecificData() {
        return instance.getManufacturerSpecificData();
      }
      /**
       * <code>string manufacturerSpecificData = 9;</code>
       * @return The bytes for manufacturerSpecificData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getManufacturerSpecificDataBytes() {
        return instance.getManufacturerSpecificDataBytes();
      }
      /**
       * <code>string manufacturerSpecificData = 9;</code>
       * @param value The manufacturerSpecificData to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturerSpecificData(
          java.lang.String value) {
        copyOnWrite();
        instance.setManufacturerSpecificData(value);
        return this;
      }
      /**
       * <code>string manufacturerSpecificData = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearManufacturerSpecificData() {
        copyOnWrite();
        instance.clearManufacturerSpecificData();
        return this;
      }
      /**
       * <code>string manufacturerSpecificData = 9;</code>
       * @param value The bytes for manufacturerSpecificData to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturerSpecificDataBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setManufacturerSpecificDataBytes(value);
        return this;
      }

      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> getMapManualList() {
        return java.util.Collections.unmodifiableList(
            instance.getMapManualList());
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      @java.lang.Override
      public int getMapManualCount() {
        return instance.getMapManualCount();
      }/**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual getMapManual(int index) {
        return instance.getMapManual(index);
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder setMapManual(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
        copyOnWrite();
        instance.setMapManual(index, value);
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder setMapManual(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.Builder builderForValue) {
        copyOnWrite();
        instance.setMapManual(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder addMapManual(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
        copyOnWrite();
        instance.addMapManual(value);
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder addMapManual(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual value) {
        copyOnWrite();
        instance.addMapManual(index, value);
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder addMapManual(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.Builder builderForValue) {
        copyOnWrite();
        instance.addMapManual(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder addMapManual(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.Builder builderForValue) {
        copyOnWrite();
        instance.addMapManual(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder addAllMapManual(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> values) {
        copyOnWrite();
        instance.addAllMapManual(values);
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder clearMapManual() {
        copyOnWrite();
        instance.clearMapManual();
        return this;
      }
      /**
       * <code>repeated .MapManual mapManual = 10;</code>
       */
      public Builder removeMapManual(int index) {
        copyOnWrite();
        instance.removeMapManual(index);
        return this;
      }

      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> getPagingInformationList() {
        return java.util.Collections.unmodifiableList(
            instance.getPagingInformationList());
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      @java.lang.Override
      public int getPagingInformationCount() {
        return instance.getPagingInformationCount();
      }/**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation getPagingInformation(int index) {
        return instance.getPagingInformation(index);
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder setPagingInformation(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
        copyOnWrite();
        instance.setPagingInformation(index, value);
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder setPagingInformation(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Builder builderForValue) {
        copyOnWrite();
        instance.setPagingInformation(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder addPagingInformation(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
        copyOnWrite();
        instance.addPagingInformation(value);
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder addPagingInformation(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation value) {
        copyOnWrite();
        instance.addPagingInformation(index, value);
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder addPagingInformation(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Builder builderForValue) {
        copyOnWrite();
        instance.addPagingInformation(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder addPagingInformation(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Builder builderForValue) {
        copyOnWrite();
        instance.addPagingInformation(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder addAllPagingInformation(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> values) {
        copyOnWrite();
        instance.addAllPagingInformation(values);
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder clearPagingInformation() {
        copyOnWrite();
        instance.clearPagingInformation();
        return this;
      }
      /**
       * <code>repeated .PagingInformation pagingInformation = 11;</code>
       */
      public Builder removePagingInformation(int index) {
        copyOnWrite();
        instance.removePagingInformation(index);
        return this;
      }

      /**
       * <code>bool isAccessory = 12;</code>
       * @return The isAccessory.
       */
      @java.lang.Override
      public boolean getIsAccessory() {
        return instance.getIsAccessory();
      }
      /**
       * <code>bool isAccessory = 12;</code>
       * @param value The isAccessory to set.
       * @return This builder for chaining.
       */
      public Builder setIsAccessory(boolean value) {
        copyOnWrite();
        instance.setIsAccessory(value);
        return this;
      }
      /**
       * <code>bool isAccessory = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAccessory() {
        copyOnWrite();
        instance.clearIsAccessory();
        return this;
      }

      /**
       * <code>int32 ephemerisEffectiveTime = 13;</code>
       * @return The ephemerisEffectiveTime.
       */
      @java.lang.Override
      public int getEphemerisEffectiveTime() {
        return instance.getEphemerisEffectiveTime();
      }
      /**
       * <code>int32 ephemerisEffectiveTime = 13;</code>
       * @param value The ephemerisEffectiveTime to set.
       * @return This builder for chaining.
       */
      public Builder setEphemerisEffectiveTime(int value) {
        copyOnWrite();
        instance.setEphemerisEffectiveTime(value);
        return this;
      }
      /**
       * <code>int32 ephemerisEffectiveTime = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearEphemerisEffectiveTime() {
        copyOnWrite();
        instance.clearEphemerisEffectiveTime();
        return this;
      }

      /**
       * <code>int32 deviceMaxActivityFileNum = 14;</code>
       * @return The deviceMaxActivityFileNum.
       */
      @java.lang.Override
      public int getDeviceMaxActivityFileNum() {
        return instance.getDeviceMaxActivityFileNum();
      }
      /**
       * <code>int32 deviceMaxActivityFileNum = 14;</code>
       * @param value The deviceMaxActivityFileNum to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceMaxActivityFileNum(int value) {
        copyOnWrite();
        instance.setDeviceMaxActivityFileNum(value);
        return this;
      }
      /**
       * <code>int32 deviceMaxActivityFileNum = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceMaxActivityFileNum() {
        copyOnWrite();
        instance.clearDeviceMaxActivityFileNum();
        return this;
      }

      /**
       * <code>int32 connectionMode = 15;</code>
       * @return The connectionMode.
       */
      @java.lang.Override
      public int getConnectionMode() {
        return instance.getConnectionMode();
      }
      /**
       * <code>int32 connectionMode = 15;</code>
       * @param value The connectionMode to set.
       * @return This builder for chaining.
       */
      public Builder setConnectionMode(int value) {
        copyOnWrite();
        instance.setConnectionMode(value);
        return this;
      }
      /**
       * <code>int32 connectionMode = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearConnectionMode() {
        copyOnWrite();
        instance.clearConnectionMode();
        return this;
      }

      /**
       * <code>int32 androidSupportMinVersion = 16;</code>
       * @return The androidSupportMinVersion.
       */
      @java.lang.Override
      public int getAndroidSupportMinVersion() {
        return instance.getAndroidSupportMinVersion();
      }
      /**
       * <code>int32 androidSupportMinVersion = 16;</code>
       * @param value The androidSupportMinVersion to set.
       * @return This builder for chaining.
       */
      public Builder setAndroidSupportMinVersion(int value) {
        copyOnWrite();
        instance.setAndroidSupportMinVersion(value);
        return this;
      }
      /**
       * <code>int32 androidSupportMinVersion = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearAndroidSupportMinVersion() {
        copyOnWrite();
        instance.clearAndroidSupportMinVersion();
        return this;
      }

      /**
       * <code>int32 upperLimitOfMode = 17;</code>
       * @return The upperLimitOfMode.
       */
      @java.lang.Override
      public int getUpperLimitOfMode() {
        return instance.getUpperLimitOfMode();
      }
      /**
       * <code>int32 upperLimitOfMode = 17;</code>
       * @param value The upperLimitOfMode to set.
       * @return This builder for chaining.
       */
      public Builder setUpperLimitOfMode(int value) {
        copyOnWrite();
        instance.setUpperLimitOfMode(value);
        return this;
      }
      /**
       * <code>int32 upperLimitOfMode = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpperLimitOfMode() {
        copyOnWrite();
        instance.clearUpperLimitOfMode();
        return this;
      }

      /**
       * <code>bool isShowRecommendDevice = 18;</code>
       * @return The isShowRecommendDevice.
       */
      @java.lang.Override
      public boolean getIsShowRecommendDevice() {
        return instance.getIsShowRecommendDevice();
      }
      /**
       * <code>bool isShowRecommendDevice = 18;</code>
       * @param value The isShowRecommendDevice to set.
       * @return This builder for chaining.
       */
      public Builder setIsShowRecommendDevice(boolean value) {
        copyOnWrite();
        instance.setIsShowRecommendDevice(value);
        return this;
      }
      /**
       * <code>bool isShowRecommendDevice = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsShowRecommendDevice() {
        copyOnWrite();
        instance.clearIsShowRecommendDevice();
        return this;
      }

      /**
       * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
       * @return The enum numeric value on the wire for deviceCategoryType.
       */
      @java.lang.Override
      public int getDeviceCategoryTypeValue() {
        return instance.getDeviceCategoryTypeValue();
      }
      /**
       * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
       * @param value The deviceCategoryType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceCategoryTypeValue(int value) {
        copyOnWrite();
        instance.setDeviceCategoryTypeValue(value);
        return this;
      }
      /**
       * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
       * @return The deviceCategoryType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType getDeviceCategoryType() {
        return instance.getDeviceCategoryType();
      }
      /**
       * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
       * @param value The enum numeric value on the wire for deviceCategoryType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceCategoryType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceCategoryType value) {
        copyOnWrite();
        instance.setDeviceCategoryType(value);
        return this;
      }
      /**
       * <code>.DeviceCategoryType deviceCategoryType = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceCategoryType() {
        copyOnWrite();
        instance.clearDeviceCategoryType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DeviceInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "deviceImage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.class,
              "devName_",
              "devCustomName_",
              "generation_",
              "isSupportProtoBuf_",
              "sendFileMtuSize_",
              "dataReceiveTimeOut_",
              "functionTypeList_",
              "manufacturerSpecificData_",
              "mapManual_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.class,
              "pagingInformation_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.class,
              "isAccessory_",
              "ephemerisEffectiveTime_",
              "deviceMaxActivityFileNum_",
              "connectionMode_",
              "androidSupportMinVersion_",
              "upperLimitOfMode_",
              "isShowRecommendDevice_",
              "deviceCategoryType_",
            };
            java.lang.String info =
                "\u0000\u0013\u0000\u0000\u0001\u0013\u0013\u0000\u0004\u0000\u0001\u001b\u0002\u0208" +
                "\u0003\u0208\u0004\u0004\u0005\u0007\u0006\u0004\u0007\u0004\b,\t\u0208\n\u001b\u000b" +
                "\u001b\f\u0007\r\u0004\u000e\u0004\u000f\u0004\u0010\u0004\u0011\u0004\u0012\u0007" +
                "\u0013\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:DeviceInfo)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo DEFAULT_INSTANCE;
    static {
      DeviceInfo defaultInstance = new DeviceInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeviceInfo.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DeviceInfo> PARSER;

    public static com.google.protobuf.Parser<DeviceInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MapManualOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapManual)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @return The enum numeric value on the wire for manualType.
     */
    int getManualTypeValue();
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @return The manualType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType getManualType();

    /**
     * <code>string url = 2;</code>
     * @return The url.
     */
    java.lang.String getUrl();
    /**
     * <code>string url = 2;</code>
     * @return The bytes for url.
     */
    com.google.protobuf.ByteString
        getUrlBytes();
  }
  /**
   * Protobuf type {@code MapManual}
   */
  public  static final class MapManual extends
      com.google.protobuf.GeneratedMessageLite<
          MapManual, MapManual.Builder> implements
      // @@protoc_insertion_point(message_implements:MapManual)
      MapManualOrBuilder {
    private MapManual() {
      url_ = "";
    }
    /**
     * Protobuf enum {@code MapManual.ManualType}
     */
    public enum ManualType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>INVALID = 0;</code>
       */
      INVALID(0),
      /**
       * <code>UNBIND = 1;</code>
       */
      UNBIND(1),
      /**
       * <code>CONNECT_HELP = 2;</code>
       */
      CONNECT_HELP(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>INVALID = 0;</code>
       */
      public static final int INVALID_VALUE = 0;
      /**
       * <code>UNBIND = 1;</code>
       */
      public static final int UNBIND_VALUE = 1;
      /**
       * <code>CONNECT_HELP = 2;</code>
       */
      public static final int CONNECT_HELP_VALUE = 2;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ManualType valueOf(int value) {
        return forNumber(value);
      }

      public static ManualType forNumber(int value) {
        switch (value) {
          case 0: return INVALID;
          case 1: return UNBIND;
          case 2: return CONNECT_HELP;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ManualType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ManualType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ManualType>() {
              @java.lang.Override
              public ManualType findValueByNumber(int number) {
                return ManualType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return ManualTypeVerifier.INSTANCE;
      }

      private static final class ManualTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ManualTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return ManualType.forNumber(number) != null;
              }
            };

      private final int value;

      private ManualType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:MapManual.ManualType)
    }

    public static final int MANUALTYPE_FIELD_NUMBER = 1;
    private int manualType_;
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @return The enum numeric value on the wire for manualType.
     */
    @java.lang.Override
    public int getManualTypeValue() {
      return manualType_;
    }
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @return The manualType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType getManualType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType.forNumber(manualType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType.UNRECOGNIZED : result;
    }
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @param value The enum numeric value on the wire for manualType to set.
     */
    private void setManualTypeValue(int value) {
        manualType_ = value;
    }
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     * @param value The manualType to set.
     */
    private void setManualType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType value) {
      manualType_ = value.getNumber();
      
    }
    /**
     * <code>.MapManual.ManualType manualType = 1;</code>
     */
    private void clearManualType() {
      
      manualType_ = 0;
    }

    public static final int URL_FIELD_NUMBER = 2;
    private java.lang.String url_;
    /**
     * <code>string url = 2;</code>
     * @return The url.
     */
    @java.lang.Override
    public java.lang.String getUrl() {
      return url_;
    }
    /**
     * <code>string url = 2;</code>
     * @return The bytes for url.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(url_);
    }
    /**
     * <code>string url = 2;</code>
     * @param value The url to set.
     */
    private void setUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      url_ = value;
    }
    /**
     * <code>string url = 2;</code>
     */
    private void clearUrl() {
      
      url_ = getDefaultInstance().getUrl();
    }
    /**
     * <code>string url = 2;</code>
     * @param value The bytes for url to set.
     */
    private void setUrlBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      url_ = value.toStringUtf8();
      
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code MapManual}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual, Builder> implements
        // @@protoc_insertion_point(builder_implements:MapManual)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManualOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.MapManual.ManualType manualType = 1;</code>
       * @return The enum numeric value on the wire for manualType.
       */
      @java.lang.Override
      public int getManualTypeValue() {
        return instance.getManualTypeValue();
      }
      /**
       * <code>.MapManual.ManualType manualType = 1;</code>
       * @param value The manualType to set.
       * @return This builder for chaining.
       */
      public Builder setManualTypeValue(int value) {
        copyOnWrite();
        instance.setManualTypeValue(value);
        return this;
      }
      /**
       * <code>.MapManual.ManualType manualType = 1;</code>
       * @return The manualType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType getManualType() {
        return instance.getManualType();
      }
      /**
       * <code>.MapManual.ManualType manualType = 1;</code>
       * @param value The enum numeric value on the wire for manualType to set.
       * @return This builder for chaining.
       */
      public Builder setManualType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.ManualType value) {
        copyOnWrite();
        instance.setManualType(value);
        return this;
      }
      /**
       * <code>.MapManual.ManualType manualType = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearManualType() {
        copyOnWrite();
        instance.clearManualType();
        return this;
      }

      /**
       * <code>string url = 2;</code>
       * @return The url.
       */
      @java.lang.Override
      public java.lang.String getUrl() {
        return instance.getUrl();
      }
      /**
       * <code>string url = 2;</code>
       * @return The bytes for url.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUrlBytes() {
        return instance.getUrlBytes();
      }
      /**
       * <code>string url = 2;</code>
       * @param value The url to set.
       * @return This builder for chaining.
       */
      public Builder setUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setUrl(value);
        return this;
      }
      /**
       * <code>string url = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUrl() {
        copyOnWrite();
        instance.clearUrl();
        return this;
      }
      /**
       * <code>string url = 2;</code>
       * @param value The bytes for url to set.
       * @return This builder for chaining.
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setUrlBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:MapManual)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "manualType_",
              "url_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\f\u0002\u0208" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:MapManual)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual DEFAULT_INSTANCE;
    static {
      MapManual defaultInstance = new MapManual();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MapManual.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.MapManual getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MapManual> PARSER;

    public static com.google.protobuf.Parser<MapManual> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DeviceImageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DeviceImage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @return The enum numeric value on the wire for imageType.
     */
    int getImageTypeValue();
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @return The imageType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType getImageType();

    /**
     * <code>string url = 2;</code>
     * @return The url.
     */
    java.lang.String getUrl();
    /**
     * <code>string url = 2;</code>
     * @return The bytes for url.
     */
    com.google.protobuf.ByteString
        getUrlBytes();
  }
  /**
   * Protobuf type {@code DeviceImage}
   */
  public  static final class DeviceImage extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceImage, DeviceImage.Builder> implements
      // @@protoc_insertion_point(message_implements:DeviceImage)
      DeviceImageOrBuilder {
    private DeviceImage() {
      url_ = "";
    }
    /**
     * Protobuf enum {@code DeviceImage.ImageType}
     */
    public enum ImageType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>INVALID = 0;</code>
       */
      INVALID(0),
      /**
       * <code>BIG = 1;</code>
       */
      BIG(1),
      /**
       * <code>SMALL = 2;</code>
       */
      SMALL(2),
      /**
       * <code>BACKGROUND_IN_PAGE_SETTING = 3;</code>
       */
      BACKGROUND_IN_PAGE_SETTING(3),
      /**
       * <code>DFU = 4;</code>
       */
      DFU(4),
      /**
       * <code>UNBINDING_ANIMATION = 5;</code>
       */
      UNBINDING_ANIMATION(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>INVALID = 0;</code>
       */
      public static final int INVALID_VALUE = 0;
      /**
       * <code>BIG = 1;</code>
       */
      public static final int BIG_VALUE = 1;
      /**
       * <code>SMALL = 2;</code>
       */
      public static final int SMALL_VALUE = 2;
      /**
       * <code>BACKGROUND_IN_PAGE_SETTING = 3;</code>
       */
      public static final int BACKGROUND_IN_PAGE_SETTING_VALUE = 3;
      /**
       * <code>DFU = 4;</code>
       */
      public static final int DFU_VALUE = 4;
      /**
       * <code>UNBINDING_ANIMATION = 5;</code>
       */
      public static final int UNBINDING_ANIMATION_VALUE = 5;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ImageType valueOf(int value) {
        return forNumber(value);
      }

      public static ImageType forNumber(int value) {
        switch (value) {
          case 0: return INVALID;
          case 1: return BIG;
          case 2: return SMALL;
          case 3: return BACKGROUND_IN_PAGE_SETTING;
          case 4: return DFU;
          case 5: return UNBINDING_ANIMATION;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ImageType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ImageType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ImageType>() {
              @java.lang.Override
              public ImageType findValueByNumber(int number) {
                return ImageType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return ImageTypeVerifier.INSTANCE;
      }

      private static final class ImageTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ImageTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return ImageType.forNumber(number) != null;
              }
            };

      private final int value;

      private ImageType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:DeviceImage.ImageType)
    }

    public static final int IMAGETYPE_FIELD_NUMBER = 1;
    private int imageType_;
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @return The enum numeric value on the wire for imageType.
     */
    @java.lang.Override
    public int getImageTypeValue() {
      return imageType_;
    }
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @return The imageType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType getImageType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType.forNumber(imageType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType.UNRECOGNIZED : result;
    }
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @param value The enum numeric value on the wire for imageType to set.
     */
    private void setImageTypeValue(int value) {
        imageType_ = value;
    }
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     * @param value The imageType to set.
     */
    private void setImageType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType value) {
      imageType_ = value.getNumber();
      
    }
    /**
     * <code>.DeviceImage.ImageType imageType = 1;</code>
     */
    private void clearImageType() {
      
      imageType_ = 0;
    }

    public static final int URL_FIELD_NUMBER = 2;
    private java.lang.String url_;
    /**
     * <code>string url = 2;</code>
     * @return The url.
     */
    @java.lang.Override
    public java.lang.String getUrl() {
      return url_;
    }
    /**
     * <code>string url = 2;</code>
     * @return The bytes for url.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(url_);
    }
    /**
     * <code>string url = 2;</code>
     * @param value The url to set.
     */
    private void setUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      url_ = value;
    }
    /**
     * <code>string url = 2;</code>
     */
    private void clearUrl() {
      
      url_ = getDefaultInstance().getUrl();
    }
    /**
     * <code>string url = 2;</code>
     * @param value The bytes for url to set.
     */
    private void setUrlBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      url_ = value.toStringUtf8();
      
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code DeviceImage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage, Builder> implements
        // @@protoc_insertion_point(builder_implements:DeviceImage)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.DeviceImage.ImageType imageType = 1;</code>
       * @return The enum numeric value on the wire for imageType.
       */
      @java.lang.Override
      public int getImageTypeValue() {
        return instance.getImageTypeValue();
      }
      /**
       * <code>.DeviceImage.ImageType imageType = 1;</code>
       * @param value The imageType to set.
       * @return This builder for chaining.
       */
      public Builder setImageTypeValue(int value) {
        copyOnWrite();
        instance.setImageTypeValue(value);
        return this;
      }
      /**
       * <code>.DeviceImage.ImageType imageType = 1;</code>
       * @return The imageType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType getImageType() {
        return instance.getImageType();
      }
      /**
       * <code>.DeviceImage.ImageType imageType = 1;</code>
       * @param value The enum numeric value on the wire for imageType to set.
       * @return This builder for chaining.
       */
      public Builder setImageType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.ImageType value) {
        copyOnWrite();
        instance.setImageType(value);
        return this;
      }
      /**
       * <code>.DeviceImage.ImageType imageType = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearImageType() {
        copyOnWrite();
        instance.clearImageType();
        return this;
      }

      /**
       * <code>string url = 2;</code>
       * @return The url.
       */
      @java.lang.Override
      public java.lang.String getUrl() {
        return instance.getUrl();
      }
      /**
       * <code>string url = 2;</code>
       * @return The bytes for url.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUrlBytes() {
        return instance.getUrlBytes();
      }
      /**
       * <code>string url = 2;</code>
       * @param value The url to set.
       * @return This builder for chaining.
       */
      public Builder setUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setUrl(value);
        return this;
      }
      /**
       * <code>string url = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUrl() {
        copyOnWrite();
        instance.clearUrl();
        return this;
      }
      /**
       * <code>string url = 2;</code>
       * @param value The bytes for url to set.
       * @return This builder for chaining.
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setUrlBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DeviceImage)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "imageType_",
              "url_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\f\u0002\u0208" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:DeviceImage)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage DEFAULT_INSTANCE;
    static {
      DeviceImage defaultInstance = new DeviceImage();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeviceImage.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.DeviceImage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DeviceImage> PARSER;

    public static com.google.protobuf.Parser<DeviceImage> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PagingInformationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PagingInformation)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @return The enum numeric value on the wire for function.
     */
    int getFunctionValue();
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @return The function.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function getFunction();

    /**
     * <code>bool isSupportPaging = 2;</code>
     * @return The isSupportPaging.
     */
    boolean getIsSupportPaging();
  }
  /**
   * Protobuf type {@code PagingInformation}
   */
  public  static final class PagingInformation extends
      com.google.protobuf.GeneratedMessageLite<
          PagingInformation, PagingInformation.Builder> implements
      // @@protoc_insertion_point(message_implements:PagingInformation)
      PagingInformationOrBuilder {
    private PagingInformation() {
    }
    /**
     * Protobuf enum {@code PagingInformation.Function}
     */
    public enum Function
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>INVALID = 0;</code>
       */
      INVALID(0),
      /**
       * <code>ACTIVITIES = 1;</code>
       */
      ACTIVITIES(1),
      /**
       * <code>ROUTES = 2;</code>
       */
      ROUTES(2),
      /**
       * <code>WORKOUTS = 3;</code>
       */
      WORKOUTS(3),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>INVALID = 0;</code>
       */
      public static final int INVALID_VALUE = 0;
      /**
       * <code>ACTIVITIES = 1;</code>
       */
      public static final int ACTIVITIES_VALUE = 1;
      /**
       * <code>ROUTES = 2;</code>
       */
      public static final int ROUTES_VALUE = 2;
      /**
       * <code>WORKOUTS = 3;</code>
       */
      public static final int WORKOUTS_VALUE = 3;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Function valueOf(int value) {
        return forNumber(value);
      }

      public static Function forNumber(int value) {
        switch (value) {
          case 0: return INVALID;
          case 1: return ACTIVITIES;
          case 2: return ROUTES;
          case 3: return WORKOUTS;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Function>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Function> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Function>() {
              @java.lang.Override
              public Function findValueByNumber(int number) {
                return Function.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return FunctionVerifier.INSTANCE;
      }

      private static final class FunctionVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FunctionVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return Function.forNumber(number) != null;
              }
            };

      private final int value;

      private Function(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:PagingInformation.Function)
    }

    public static final int FUNCTION_FIELD_NUMBER = 1;
    private int function_;
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @return The enum numeric value on the wire for function.
     */
    @java.lang.Override
    public int getFunctionValue() {
      return function_;
    }
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @return The function.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function getFunction() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function.forNumber(function_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function.UNRECOGNIZED : result;
    }
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @param value The enum numeric value on the wire for function to set.
     */
    private void setFunctionValue(int value) {
        function_ = value;
    }
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     * @param value The function to set.
     */
    private void setFunction(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function value) {
      function_ = value.getNumber();
      
    }
    /**
     * <code>.PagingInformation.Function function = 1;</code>
     */
    private void clearFunction() {
      
      function_ = 0;
    }

    public static final int ISSUPPORTPAGING_FIELD_NUMBER = 2;
    private boolean isSupportPaging_;
    /**
     * <code>bool isSupportPaging = 2;</code>
     * @return The isSupportPaging.
     */
    @java.lang.Override
    public boolean getIsSupportPaging() {
      return isSupportPaging_;
    }
    /**
     * <code>bool isSupportPaging = 2;</code>
     * @param value The isSupportPaging to set.
     */
    private void setIsSupportPaging(boolean value) {
      
      isSupportPaging_ = value;
    }
    /**
     * <code>bool isSupportPaging = 2;</code>
     */
    private void clearIsSupportPaging() {
      
      isSupportPaging_ = false;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code PagingInformation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation, Builder> implements
        // @@protoc_insertion_point(builder_implements:PagingInformation)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformationOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.PagingInformation.Function function = 1;</code>
       * @return The enum numeric value on the wire for function.
       */
      @java.lang.Override
      public int getFunctionValue() {
        return instance.getFunctionValue();
      }
      /**
       * <code>.PagingInformation.Function function = 1;</code>
       * @param value The function to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionValue(int value) {
        copyOnWrite();
        instance.setFunctionValue(value);
        return this;
      }
      /**
       * <code>.PagingInformation.Function function = 1;</code>
       * @return The function.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function getFunction() {
        return instance.getFunction();
      }
      /**
       * <code>.PagingInformation.Function function = 1;</code>
       * @param value The enum numeric value on the wire for function to set.
       * @return This builder for chaining.
       */
      public Builder setFunction(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.Function value) {
        copyOnWrite();
        instance.setFunction(value);
        return this;
      }
      /**
       * <code>.PagingInformation.Function function = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFunction() {
        copyOnWrite();
        instance.clearFunction();
        return this;
      }

      /**
       * <code>bool isSupportPaging = 2;</code>
       * @return The isSupportPaging.
       */
      @java.lang.Override
      public boolean getIsSupportPaging() {
        return instance.getIsSupportPaging();
      }
      /**
       * <code>bool isSupportPaging = 2;</code>
       * @param value The isSupportPaging to set.
       * @return This builder for chaining.
       */
      public Builder setIsSupportPaging(boolean value) {
        copyOnWrite();
        instance.setIsSupportPaging(value);
        return this;
      }
      /**
       * <code>bool isSupportPaging = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsSupportPaging() {
        copyOnWrite();
        instance.clearIsSupportPaging();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PagingInformation)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "function_",
              "isSupportPaging_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\f\u0002\u0007" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:PagingInformation)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation DEFAULT_INSTANCE;
    static {
      PagingInformation defaultInstance = new PagingInformation();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PagingInformation.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.DeviceInformation.PagingInformation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PagingInformation> PARSER;

    public static com.google.protobuf.Parser<PagingInformation> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
