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

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class RoutePlan {
  private RoutePlan() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code ROUTE_PLAN_OPERATE_TYPE}
   */
  public enum ROUTE_PLAN_OPERATE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_NONE = 0;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_NONE(0),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_GET = 1;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_LIST_GET(1),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_SEND = 2;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_LIST_SEND(2),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_DEL = 3;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_FILE_DEL(3),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_SEND = 4;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_FILE_SEND(4),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_USE = 5;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_FILE_USE(5),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILES_DEL = 6;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_FILES_DEL(6),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_NUM_GET = 7;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_LIST_NUM_GET(7),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_RENAME = 8;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_RENAME(8),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_TURN_PROMPT = 9;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_TURN_PROMPT(9),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_NOTIFY_TRAJECTORY_DEVIATION = 10;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_NOTIFY_TRAJECTORY_DEVIATION(10),
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_ROUTE_POINT_GET = 11;</code>
     */
    enum_ROUTE_PLAN_OPERATE_TYPE_ROUTE_POINT_GET(11),
    ;

    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_NONE = 0;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_GET = 1;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_LIST_GET_VALUE = 1;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_SEND = 2;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_LIST_SEND_VALUE = 2;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_DEL = 3;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_FILE_DEL_VALUE = 3;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_SEND = 4;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_FILE_SEND_VALUE = 4;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILE_USE = 5;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_FILE_USE_VALUE = 5;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_FILES_DEL = 6;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_FILES_DEL_VALUE = 6;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_LIST_NUM_GET = 7;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_LIST_NUM_GET_VALUE = 7;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_RENAME = 8;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_RENAME_VALUE = 8;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_TURN_PROMPT = 9;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_TURN_PROMPT_VALUE = 9;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_NOTIFY_TRAJECTORY_DEVIATION = 10;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_NOTIFY_TRAJECTORY_DEVIATION_VALUE = 10;
    /**
     * <code>enum_ROUTE_PLAN_OPERATE_TYPE_ROUTE_POINT_GET = 11;</code>
     */
    public static final int enum_ROUTE_PLAN_OPERATE_TYPE_ROUTE_POINT_GET_VALUE = 11;


    @java.lang.Override
    public final int getNumber() {
      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 ROUTE_PLAN_OPERATE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static ROUTE_PLAN_OPERATE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_ROUTE_PLAN_OPERATE_TYPE_NONE;
        case 1: return enum_ROUTE_PLAN_OPERATE_TYPE_LIST_GET;
        case 2: return enum_ROUTE_PLAN_OPERATE_TYPE_LIST_SEND;
        case 3: return enum_ROUTE_PLAN_OPERATE_TYPE_FILE_DEL;
        case 4: return enum_ROUTE_PLAN_OPERATE_TYPE_FILE_SEND;
        case 5: return enum_ROUTE_PLAN_OPERATE_TYPE_FILE_USE;
        case 6: return enum_ROUTE_PLAN_OPERATE_TYPE_FILES_DEL;
        case 7: return enum_ROUTE_PLAN_OPERATE_TYPE_LIST_NUM_GET;
        case 8: return enum_ROUTE_PLAN_OPERATE_TYPE_RENAME;
        case 9: return enum_ROUTE_PLAN_OPERATE_TYPE_TURN_PROMPT;
        case 10: return enum_ROUTE_PLAN_OPERATE_TYPE_NOTIFY_TRAJECTORY_DEVIATION;
        case 11: return enum_ROUTE_PLAN_OPERATE_TYPE_ROUTE_POINT_GET;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ROUTE_PLAN_OPERATE_TYPE)
  }

  /**
   * Protobuf enum {@code ROUTE_PLAN_FILE_TYPE}
   */
  public enum ROUTE_PLAN_FILE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_INVALID = 0;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_INVALID(0),
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_CNX = 1;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_CNX(1),
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_GPX = 2;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_GPX(2),
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_FIT = 3;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_FIT(3),
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_TCX = 4;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_TCX(4),
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_XML = 5;</code>
     */
    enum_ROUTE_PLAN_FILE_TYPE_XML(5),
    ;

    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_INVALID = 0;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_CNX = 1;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_CNX_VALUE = 1;
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_GPX = 2;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_GPX_VALUE = 2;
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_FIT = 3;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_FIT_VALUE = 3;
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_TCX = 4;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_TCX_VALUE = 4;
    /**
     * <code>enum_ROUTE_PLAN_FILE_TYPE_XML = 5;</code>
     */
    public static final int enum_ROUTE_PLAN_FILE_TYPE_XML_VALUE = 5;


    @java.lang.Override
    public final int getNumber() {
      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 ROUTE_PLAN_FILE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static ROUTE_PLAN_FILE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_ROUTE_PLAN_FILE_TYPE_INVALID;
        case 1: return enum_ROUTE_PLAN_FILE_TYPE_CNX;
        case 2: return enum_ROUTE_PLAN_FILE_TYPE_GPX;
        case 3: return enum_ROUTE_PLAN_FILE_TYPE_FIT;
        case 4: return enum_ROUTE_PLAN_FILE_TYPE_TCX;
        case 5: return enum_ROUTE_PLAN_FILE_TYPE_XML;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ROUTE_PLAN_FILE_TYPE)
  }

  /**
   * Protobuf enum {@code ROUTE_PLAN_FILE_STATUS}
   */
  public enum ROUTE_PLAN_FILE_STATUS
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_INVALID_STATUS = 0;</code>
     */
    enum_INVALID_STATUS(0),
    /**
     * <code>enum_USED_STATUS = 1;</code>
     */
    enum_USED_STATUS(1),
    /**
     * <code>enum_UNUSED_STATUS = 2;</code>
     */
    enum_UNUSED_STATUS(2),
    ;

    /**
     * <code>enum_INVALID_STATUS = 0;</code>
     */
    public static final int enum_INVALID_STATUS_VALUE = 0;
    /**
     * <code>enum_USED_STATUS = 1;</code>
     */
    public static final int enum_USED_STATUS_VALUE = 1;
    /**
     * <code>enum_UNUSED_STATUS = 2;</code>
     */
    public static final int enum_UNUSED_STATUS_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      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 ROUTE_PLAN_FILE_STATUS valueOf(int value) {
      return forNumber(value);
    }

    public static ROUTE_PLAN_FILE_STATUS forNumber(int value) {
      switch (value) {
        case 0: return enum_INVALID_STATUS;
        case 1: return enum_USED_STATUS;
        case 2: return enum_UNUSED_STATUS;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ROUTE_PLAN_FILE_STATUS)
  }

  /**
   * Protobuf enum {@code ROUTE_TURN_PROMPT}
   */
  public enum ROUTE_TURN_PROMPT
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enumNAVI_TRUN_LEFT_ROUND = 0;</code>
     */
    enumNAVI_TRUN_LEFT_ROUND(0),
    /**
     * <code>enumNAVI_TURN_LEFT_SHARPLY = 1;</code>
     */
    enumNAVI_TURN_LEFT_SHARPLY(1),
    /**
     * <code>enumNAVI_TURN_LEFT_NORMALLY = 2;</code>
     */
    enumNAVI_TURN_LEFT_NORMALLY(2),
    /**
     * <code>enumNAVI_TURN_LEFT_FRONT = 3;</code>
     */
    enumNAVI_TURN_LEFT_FRONT(3),
    /**
     * <code>enumNAVI_TURN_RIGHT_FRONT = 4;</code>
     */
    enumNAVI_TURN_RIGHT_FRONT(4),
    /**
     * <code>enumNAVI_TURN_RIGHT_NORMALLY = 5;</code>
     */
    enumNAVI_TURN_RIGHT_NORMALLY(5),
    /**
     * <code>enumNAVI_TURN_RIGHT_SHARPLY = 6;</code>
     */
    enumNAVI_TURN_RIGHT_SHARPLY(6),
    /**
     * <code>enumNAVI_TRUN_RIGHT_ROUND = 7;</code>
     */
    enumNAVI_TRUN_RIGHT_ROUND(7),
    /**
     * <code>enumNAVI_TRUN_LEFT_ROUND_AT_ONCE = 8;</code>
     */
    enumNAVI_TRUN_LEFT_ROUND_AT_ONCE(8),
    /**
     * <code>enumNAVI_TURN_LEFT_AT_ONCE = 9;</code>
     */
    enumNAVI_TURN_LEFT_AT_ONCE(9),
    /**
     * <code>enumNAVI_TURN_LEFT_NORMALLY_AT_ONCE = 10;</code>
     */
    enumNAVI_TURN_LEFT_NORMALLY_AT_ONCE(10),
    /**
     * <code>enumNAVI_TURN_LEFT_FRONT_AT_ONCE = 11;</code>
     */
    enumNAVI_TURN_LEFT_FRONT_AT_ONCE(11),
    /**
     * <code>enumNAVI_TURN_RIGHT_FRONT_AT_ONCE = 12;</code>
     */
    enumNAVI_TURN_RIGHT_FRONT_AT_ONCE(12),
    /**
     * <code>enumNAVI_TURN_RIGHT_NORMALLY_AT_ONCE = 13;</code>
     */
    enumNAVI_TURN_RIGHT_NORMALLY_AT_ONCE(13),
    /**
     * <code>enumNAVI_TURN_RIGHT_AT_ONCE = 14;</code>
     */
    enumNAVI_TURN_RIGHT_AT_ONCE(14),
    /**
     * <code>enumNAVI_TRUN_RIGHT_ROUND_AT_ONCE = 15;</code>
     */
    enumNAVI_TRUN_RIGHT_ROUND_AT_ONCE(15),
    /**
     * <code>enumNAVI_TRUN_WINDING = 16;</code>
     */
    enumNAVI_TRUN_WINDING(16),
    /**
     * <code>enumNAVI_START_NAVIGATION = 17;</code>
     */
    enumNAVI_START_NAVIGATION(17),
    /**
     * <code>enumNAVI_YAW = 18;</code>
     */
    enumNAVI_YAW(18),
    /**
     * <code>enumNAVI_YAW_ANT_RENAVI = 19;</code>
     */
    enumNAVI_YAW_ANT_RENAVI(19),
    /**
     * <code>enumNAVI_YAW_RECOVERY = 20;</code>
     */
    enumNAVI_YAW_RECOVERY(20),
    /**
     * <code>enumNAVI_NAVIGATION_END = 21;</code>
     */
    enumNAVI_NAVIGATION_END(21),
    ;

    /**
     * <code>enumNAVI_TRUN_LEFT_ROUND = 0;</code>
     */
    public static final int enumNAVI_TRUN_LEFT_ROUND_VALUE = 0;
    /**
     * <code>enumNAVI_TURN_LEFT_SHARPLY = 1;</code>
     */
    public static final int enumNAVI_TURN_LEFT_SHARPLY_VALUE = 1;
    /**
     * <code>enumNAVI_TURN_LEFT_NORMALLY = 2;</code>
     */
    public static final int enumNAVI_TURN_LEFT_NORMALLY_VALUE = 2;
    /**
     * <code>enumNAVI_TURN_LEFT_FRONT = 3;</code>
     */
    public static final int enumNAVI_TURN_LEFT_FRONT_VALUE = 3;
    /**
     * <code>enumNAVI_TURN_RIGHT_FRONT = 4;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_FRONT_VALUE = 4;
    /**
     * <code>enumNAVI_TURN_RIGHT_NORMALLY = 5;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_NORMALLY_VALUE = 5;
    /**
     * <code>enumNAVI_TURN_RIGHT_SHARPLY = 6;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_SHARPLY_VALUE = 6;
    /**
     * <code>enumNAVI_TRUN_RIGHT_ROUND = 7;</code>
     */
    public static final int enumNAVI_TRUN_RIGHT_ROUND_VALUE = 7;
    /**
     * <code>enumNAVI_TRUN_LEFT_ROUND_AT_ONCE = 8;</code>
     */
    public static final int enumNAVI_TRUN_LEFT_ROUND_AT_ONCE_VALUE = 8;
    /**
     * <code>enumNAVI_TURN_LEFT_AT_ONCE = 9;</code>
     */
    public static final int enumNAVI_TURN_LEFT_AT_ONCE_VALUE = 9;
    /**
     * <code>enumNAVI_TURN_LEFT_NORMALLY_AT_ONCE = 10;</code>
     */
    public static final int enumNAVI_TURN_LEFT_NORMALLY_AT_ONCE_VALUE = 10;
    /**
     * <code>enumNAVI_TURN_LEFT_FRONT_AT_ONCE = 11;</code>
     */
    public static final int enumNAVI_TURN_LEFT_FRONT_AT_ONCE_VALUE = 11;
    /**
     * <code>enumNAVI_TURN_RIGHT_FRONT_AT_ONCE = 12;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_FRONT_AT_ONCE_VALUE = 12;
    /**
     * <code>enumNAVI_TURN_RIGHT_NORMALLY_AT_ONCE = 13;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_NORMALLY_AT_ONCE_VALUE = 13;
    /**
     * <code>enumNAVI_TURN_RIGHT_AT_ONCE = 14;</code>
     */
    public static final int enumNAVI_TURN_RIGHT_AT_ONCE_VALUE = 14;
    /**
     * <code>enumNAVI_TRUN_RIGHT_ROUND_AT_ONCE = 15;</code>
     */
    public static final int enumNAVI_TRUN_RIGHT_ROUND_AT_ONCE_VALUE = 15;
    /**
     * <code>enumNAVI_TRUN_WINDING = 16;</code>
     */
    public static final int enumNAVI_TRUN_WINDING_VALUE = 16;
    /**
     * <code>enumNAVI_START_NAVIGATION = 17;</code>
     */
    public static final int enumNAVI_START_NAVIGATION_VALUE = 17;
    /**
     * <code>enumNAVI_YAW = 18;</code>
     */
    public static final int enumNAVI_YAW_VALUE = 18;
    /**
     * <code>enumNAVI_YAW_ANT_RENAVI = 19;</code>
     */
    public static final int enumNAVI_YAW_ANT_RENAVI_VALUE = 19;
    /**
     * <code>enumNAVI_YAW_RECOVERY = 20;</code>
     */
    public static final int enumNAVI_YAW_RECOVERY_VALUE = 20;
    /**
     * <code>enumNAVI_NAVIGATION_END = 21;</code>
     */
    public static final int enumNAVI_NAVIGATION_END_VALUE = 21;


    @java.lang.Override
    public final int getNumber() {
      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 ROUTE_TURN_PROMPT valueOf(int value) {
      return forNumber(value);
    }

    public static ROUTE_TURN_PROMPT forNumber(int value) {
      switch (value) {
        case 0: return enumNAVI_TRUN_LEFT_ROUND;
        case 1: return enumNAVI_TURN_LEFT_SHARPLY;
        case 2: return enumNAVI_TURN_LEFT_NORMALLY;
        case 3: return enumNAVI_TURN_LEFT_FRONT;
        case 4: return enumNAVI_TURN_RIGHT_FRONT;
        case 5: return enumNAVI_TURN_RIGHT_NORMALLY;
        case 6: return enumNAVI_TURN_RIGHT_SHARPLY;
        case 7: return enumNAVI_TRUN_RIGHT_ROUND;
        case 8: return enumNAVI_TRUN_LEFT_ROUND_AT_ONCE;
        case 9: return enumNAVI_TURN_LEFT_AT_ONCE;
        case 10: return enumNAVI_TURN_LEFT_NORMALLY_AT_ONCE;
        case 11: return enumNAVI_TURN_LEFT_FRONT_AT_ONCE;
        case 12: return enumNAVI_TURN_RIGHT_FRONT_AT_ONCE;
        case 13: return enumNAVI_TURN_RIGHT_NORMALLY_AT_ONCE;
        case 14: return enumNAVI_TURN_RIGHT_AT_ONCE;
        case 15: return enumNAVI_TRUN_RIGHT_ROUND_AT_ONCE;
        case 16: return enumNAVI_TRUN_WINDING;
        case 17: return enumNAVI_START_NAVIGATION;
        case 18: return enumNAVI_YAW;
        case 19: return enumNAVI_YAW_ANT_RENAVI;
        case 20: return enumNAVI_YAW_RECOVERY;
        case 21: return enumNAVI_NAVIGATION_END;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ROUTE_TURN_PROMPT)
  }

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

    /**
     * <code>optional uint32 id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>optional uint32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     * @return Whether the fileType field is set.
     */
    boolean hasFileType();
    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     * @return The fileType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE getFileType();

    /**
     * <code>optional string name = 3;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 3;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 3;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>optional uint32 total_distance = 4;</code>
     * @return Whether the totalDistance field is set.
     */
    boolean hasTotalDistance();
    /**
     * <code>optional uint32 total_distance = 4;</code>
     * @return The totalDistance.
     */
    int getTotalDistance();

    /**
     * <code>optional double longitude_start = 5;</code>
     * @return Whether the longitudeStart field is set.
     */
    boolean hasLongitudeStart();
    /**
     * <code>optional double longitude_start = 5;</code>
     * @return The longitudeStart.
     */
    double getLongitudeStart();

    /**
     * <code>optional double latitude_start = 6;</code>
     * @return Whether the latitudeStart field is set.
     */
    boolean hasLatitudeStart();
    /**
     * <code>optional double latitude_start = 6;</code>
     * @return The latitudeStart.
     */
    double getLatitudeStart();

    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     * @return The status.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS getStatus();
  }
  /**
   * Protobuf type {@code route_plan_info_message}
   */
  public  static final class route_plan_info_message extends
      com.google.protobuf.GeneratedMessageLite<
          route_plan_info_message, route_plan_info_message.Builder> implements
      // @@protoc_insertion_point(message_implements:route_plan_info_message)
      route_plan_info_messageOrBuilder {
    private route_plan_info_message() {
      name_ = "";
    }
    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <code>optional uint32 id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }
    /**
     * <code>optional uint32 id = 1;</code>
     * @param value The id to set.
     */
    private void setId(int value) {
      bitField0_ |= 0x00000001;
      id_ = value;
    }
    /**
     * <code>optional uint32 id = 1;</code>
     */
    private void clearId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      id_ = 0;
    }

    public static final int FILE_TYPE_FIELD_NUMBER = 2;
    private int fileType_;
    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     * @return Whether the fileType field is set.
     */
    @java.lang.Override
    public boolean hasFileType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     * @return The fileType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE getFileType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE.forNumber(fileType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE.enum_ROUTE_PLAN_FILE_TYPE_INVALID : result;
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     * @param value The fileType to set.
     */
    private void setFileType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE value) {
      fileType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
     */
    private void clearFileType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      fileType_ = 0;
    }

    public static final int NAME_FIELD_NUMBER = 3;
    private java.lang.String name_;
    /**
     * <code>optional string name = 3;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string name = 3;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      return name_;
    }
    /**
     * <code>optional string name = 3;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(name_);
    }
    /**
     * <code>optional string name = 3;</code>
     * @param value The name to set.
     */
    private void setName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000004;
      name_ = value;
    }
    /**
     * <code>optional string name = 3;</code>
     */
    private void clearName() {
      bitField0_ = (bitField0_ & ~0x00000004);
      name_ = getDefaultInstance().getName();
    }
    /**
     * <code>optional string name = 3;</code>
     * @param value The bytes for name to set.
     */
    private void setNameBytes(
        com.google.protobuf.ByteString value) {
      name_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }

    public static final int TOTAL_DISTANCE_FIELD_NUMBER = 4;
    private int totalDistance_;
    /**
     * <code>optional uint32 total_distance = 4;</code>
     * @return Whether the totalDistance field is set.
     */
    @java.lang.Override
    public boolean hasTotalDistance() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 total_distance = 4;</code>
     * @return The totalDistance.
     */
    @java.lang.Override
    public int getTotalDistance() {
      return totalDistance_;
    }
    /**
     * <code>optional uint32 total_distance = 4;</code>
     * @param value The totalDistance to set.
     */
    private void setTotalDistance(int value) {
      bitField0_ |= 0x00000008;
      totalDistance_ = value;
    }
    /**
     * <code>optional uint32 total_distance = 4;</code>
     */
    private void clearTotalDistance() {
      bitField0_ = (bitField0_ & ~0x00000008);
      totalDistance_ = 0;
    }

    public static final int LONGITUDE_START_FIELD_NUMBER = 5;
    private double longitudeStart_;
    /**
     * <code>optional double longitude_start = 5;</code>
     * @return Whether the longitudeStart field is set.
     */
    @java.lang.Override
    public boolean hasLongitudeStart() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional double longitude_start = 5;</code>
     * @return The longitudeStart.
     */
    @java.lang.Override
    public double getLongitudeStart() {
      return longitudeStart_;
    }
    /**
     * <code>optional double longitude_start = 5;</code>
     * @param value The longitudeStart to set.
     */
    private void setLongitudeStart(double value) {
      bitField0_ |= 0x00000010;
      longitudeStart_ = value;
    }
    /**
     * <code>optional double longitude_start = 5;</code>
     */
    private void clearLongitudeStart() {
      bitField0_ = (bitField0_ & ~0x00000010);
      longitudeStart_ = 0D;
    }

    public static final int LATITUDE_START_FIELD_NUMBER = 6;
    private double latitudeStart_;
    /**
     * <code>optional double latitude_start = 6;</code>
     * @return Whether the latitudeStart field is set.
     */
    @java.lang.Override
    public boolean hasLatitudeStart() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional double latitude_start = 6;</code>
     * @return The latitudeStart.
     */
    @java.lang.Override
    public double getLatitudeStart() {
      return latitudeStart_;
    }
    /**
     * <code>optional double latitude_start = 6;</code>
     * @param value The latitudeStart to set.
     */
    private void setLatitudeStart(double value) {
      bitField0_ |= 0x00000020;
      latitudeStart_ = value;
    }
    /**
     * <code>optional double latitude_start = 6;</code>
     */
    private void clearLatitudeStart() {
      bitField0_ = (bitField0_ & ~0x00000020);
      latitudeStart_ = 0D;
    }

    public static final int STATUS_FIELD_NUMBER = 7;
    private int status_;
    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     * @return The status.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS getStatus() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS.forNumber(status_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS.enum_INVALID_STATUS : result;
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     * @param value The status to set.
     */
    private void setStatus(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS value) {
      status_ = value.getNumber();
      bitField0_ |= 0x00000040;
    }
    /**
     * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
     */
    private void clearStatus() {
      bitField0_ = (bitField0_ & ~0x00000040);
      status_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message 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.RoutePlan.route_plan_info_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return instance.hasId();
      }
      /**
       * <code>optional uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return instance.getId();
      }
      /**
       * <code>optional uint32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <code>optional uint32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }

      /**
       * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
       * @return Whether the fileType field is set.
       */
      @java.lang.Override
      public boolean hasFileType() {
        return instance.hasFileType();
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
       * @return The fileType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE getFileType() {
        return instance.getFileType();
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
       * @param value The enum numeric value on the wire for fileType to set.
       * @return This builder for chaining.
       */
      public Builder setFileType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE value) {
        copyOnWrite();
        instance.setFileType(value);
        return this;
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_TYPE file_type = 2 [default = enum_ROUTE_PLAN_FILE_TYPE_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearFileType() {
        copyOnWrite();
        instance.clearFileType();
        return this;
      }

      /**
       * <code>optional string name = 3;</code>
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return instance.hasName();
      }
      /**
       * <code>optional string name = 3;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return instance.getName();
      }
      /**
       * <code>optional string name = 3;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return instance.getNameBytes();
      }
      /**
       * <code>optional string name = 3;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        copyOnWrite();
        instance.setName(value);
        return this;
      }
      /**
       * <code>optional string name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        copyOnWrite();
        instance.clearName();
        return this;
      }
      /**
       * <code>optional string name = 3;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setNameBytes(value);
        return this;
      }

      /**
       * <code>optional uint32 total_distance = 4;</code>
       * @return Whether the totalDistance field is set.
       */
      @java.lang.Override
      public boolean hasTotalDistance() {
        return instance.hasTotalDistance();
      }
      /**
       * <code>optional uint32 total_distance = 4;</code>
       * @return The totalDistance.
       */
      @java.lang.Override
      public int getTotalDistance() {
        return instance.getTotalDistance();
      }
      /**
       * <code>optional uint32 total_distance = 4;</code>
       * @param value The totalDistance to set.
       * @return This builder for chaining.
       */
      public Builder setTotalDistance(int value) {
        copyOnWrite();
        instance.setTotalDistance(value);
        return this;
      }
      /**
       * <code>optional uint32 total_distance = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalDistance() {
        copyOnWrite();
        instance.clearTotalDistance();
        return this;
      }

      /**
       * <code>optional double longitude_start = 5;</code>
       * @return Whether the longitudeStart field is set.
       */
      @java.lang.Override
      public boolean hasLongitudeStart() {
        return instance.hasLongitudeStart();
      }
      /**
       * <code>optional double longitude_start = 5;</code>
       * @return The longitudeStart.
       */
      @java.lang.Override
      public double getLongitudeStart() {
        return instance.getLongitudeStart();
      }
      /**
       * <code>optional double longitude_start = 5;</code>
       * @param value The longitudeStart to set.
       * @return This builder for chaining.
       */
      public Builder setLongitudeStart(double value) {
        copyOnWrite();
        instance.setLongitudeStart(value);
        return this;
      }
      /**
       * <code>optional double longitude_start = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLongitudeStart() {
        copyOnWrite();
        instance.clearLongitudeStart();
        return this;
      }

      /**
       * <code>optional double latitude_start = 6;</code>
       * @return Whether the latitudeStart field is set.
       */
      @java.lang.Override
      public boolean hasLatitudeStart() {
        return instance.hasLatitudeStart();
      }
      /**
       * <code>optional double latitude_start = 6;</code>
       * @return The latitudeStart.
       */
      @java.lang.Override
      public double getLatitudeStart() {
        return instance.getLatitudeStart();
      }
      /**
       * <code>optional double latitude_start = 6;</code>
       * @param value The latitudeStart to set.
       * @return This builder for chaining.
       */
      public Builder setLatitudeStart(double value) {
        copyOnWrite();
        instance.setLatitudeStart(value);
        return this;
      }
      /**
       * <code>optional double latitude_start = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLatitudeStart() {
        copyOnWrite();
        instance.clearLatitudeStart();
        return this;
      }

      /**
       * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return instance.hasStatus();
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
       * @return The status.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS getStatus() {
        return instance.getStatus();
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS value) {
        copyOnWrite();
        instance.setStatus(value);
        return this;
      }
      /**
       * <code>optional .ROUTE_PLAN_FILE_STATUS status = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        copyOnWrite();
        instance.clearStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:route_plan_info_message)
    }
    @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.RoutePlan.route_plan_info_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "id_",
              "fileType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_TYPE.internalGetVerifier(),
              "name_",
              "totalDistance_",
              "longitudeStart_",
              "latitudeStart_",
              "status_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_FILE_STATUS.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100c\u0001\u0003\u1008\u0002\u0004\u100b\u0003\u0005\u1000\u0004\u0006\u1000\u0005" +
                "\u0007\u100c\u0006";
            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.RoutePlan.route_plan_info_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message>(
                        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:route_plan_info_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message DEFAULT_INSTANCE;
    static {
      route_plan_info_message defaultInstance = new route_plan_info_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        route_plan_info_message.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional double longitude = 1;</code>
     * @return Whether the longitude field is set.
     */
    boolean hasLongitude();
    /**
     * <code>optional double longitude = 1;</code>
     * @return The longitude.
     */
    double getLongitude();

    /**
     * <code>optional double latitude = 2;</code>
     * @return Whether the latitude field is set.
     */
    boolean hasLatitude();
    /**
     * <code>optional double latitude = 2;</code>
     * @return The latitude.
     */
    double getLatitude();
  }
  /**
   * Protobuf type {@code route_point_msg}
   */
  public  static final class route_point_msg extends
      com.google.protobuf.GeneratedMessageLite<
          route_point_msg, route_point_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:route_point_msg)
      route_point_msgOrBuilder {
    private route_point_msg() {
    }
    private int bitField0_;
    public static final int LONGITUDE_FIELD_NUMBER = 1;
    private double longitude_;
    /**
     * <code>optional double longitude = 1;</code>
     * @return Whether the longitude field is set.
     */
    @java.lang.Override
    public boolean hasLongitude() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional double longitude = 1;</code>
     * @return The longitude.
     */
    @java.lang.Override
    public double getLongitude() {
      return longitude_;
    }
    /**
     * <code>optional double longitude = 1;</code>
     * @param value The longitude to set.
     */
    private void setLongitude(double value) {
      bitField0_ |= 0x00000001;
      longitude_ = value;
    }
    /**
     * <code>optional double longitude = 1;</code>
     */
    private void clearLongitude() {
      bitField0_ = (bitField0_ & ~0x00000001);
      longitude_ = 0D;
    }

    public static final int LATITUDE_FIELD_NUMBER = 2;
    private double latitude_;
    /**
     * <code>optional double latitude = 2;</code>
     * @return Whether the latitude field is set.
     */
    @java.lang.Override
    public boolean hasLatitude() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional double latitude = 2;</code>
     * @return The latitude.
     */
    @java.lang.Override
    public double getLatitude() {
      return latitude_;
    }
    /**
     * <code>optional double latitude = 2;</code>
     * @param value The latitude to set.
     */
    private void setLatitude(double value) {
      bitField0_ |= 0x00000002;
      latitude_ = value;
    }
    /**
     * <code>optional double latitude = 2;</code>
     */
    private void clearLatitude() {
      bitField0_ = (bitField0_ & ~0x00000002);
      latitude_ = 0D;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg 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.RoutePlan.route_point_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional double longitude = 1;</code>
       * @return Whether the longitude field is set.
       */
      @java.lang.Override
      public boolean hasLongitude() {
        return instance.hasLongitude();
      }
      /**
       * <code>optional double longitude = 1;</code>
       * @return The longitude.
       */
      @java.lang.Override
      public double getLongitude() {
        return instance.getLongitude();
      }
      /**
       * <code>optional double longitude = 1;</code>
       * @param value The longitude to set.
       * @return This builder for chaining.
       */
      public Builder setLongitude(double value) {
        copyOnWrite();
        instance.setLongitude(value);
        return this;
      }
      /**
       * <code>optional double longitude = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLongitude() {
        copyOnWrite();
        instance.clearLongitude();
        return this;
      }

      /**
       * <code>optional double latitude = 2;</code>
       * @return Whether the latitude field is set.
       */
      @java.lang.Override
      public boolean hasLatitude() {
        return instance.hasLatitude();
      }
      /**
       * <code>optional double latitude = 2;</code>
       * @return The latitude.
       */
      @java.lang.Override
      public double getLatitude() {
        return instance.getLatitude();
      }
      /**
       * <code>optional double latitude = 2;</code>
       * @param value The latitude to set.
       * @return This builder for chaining.
       */
      public Builder setLatitude(double value) {
        copyOnWrite();
        instance.setLatitude(value);
        return this;
      }
      /**
       * <code>optional double latitude = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLatitude() {
        copyOnWrite();
        instance.clearLatitude();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:route_point_msg)
    }
    @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.RoutePlan.route_point_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "longitude_",
              "latitude_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1000\u0000\u0002" +
                "\u1000\u0001";
            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.RoutePlan.route_point_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg>(
                        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:route_point_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg DEFAULT_INSTANCE;
    static {
      route_point_msg defaultInstance = new route_point_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        route_point_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     * @return Whether the rerouteStartPoint field is set.
     */
    boolean hasRerouteStartPoint();
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     * @return The rerouteStartPoint.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteStartPoint();

    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     * @return Whether the rerouteEndPoint field is set.
     */
    boolean hasRerouteEndPoint();
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     * @return The rerouteEndPoint.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteEndPoint();

    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> 
        getReroutePassPointList();
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getReroutePassPoint(int index);
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    int getReroutePassPointCount();
  }
  /**
   * Protobuf type {@code reroute_point_info_message}
   */
  public  static final class reroute_point_info_message extends
      com.google.protobuf.GeneratedMessageLite<
          reroute_point_info_message, reroute_point_info_message.Builder> implements
      // @@protoc_insertion_point(message_implements:reroute_point_info_message)
      reroute_point_info_messageOrBuilder {
    private reroute_point_info_message() {
      reroutePassPoint_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int REROUTE_START_POINT_FIELD_NUMBER = 1;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg rerouteStartPoint_;
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     */
    @java.lang.Override
    public boolean hasRerouteStartPoint() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteStartPoint() {
      return rerouteStartPoint_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.getDefaultInstance() : rerouteStartPoint_;
    }
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     */
    private void setRerouteStartPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  rerouteStartPoint_ = value;
      bitField0_ |= 0x00000001;
      }
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRerouteStartPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  if (rerouteStartPoint_ != null &&
          rerouteStartPoint_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.getDefaultInstance()) {
        rerouteStartPoint_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.newBuilder(rerouteStartPoint_).mergeFrom(value).buildPartial();
      } else {
        rerouteStartPoint_ = value;
      }
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .route_point_msg reroute_start_point = 1;</code>
     */
    private void clearRerouteStartPoint() {  rerouteStartPoint_ = null;
      bitField0_ = (bitField0_ & ~0x00000001);
    }

    public static final int REROUTE_END_POINT_FIELD_NUMBER = 2;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg rerouteEndPoint_;
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     */
    @java.lang.Override
    public boolean hasRerouteEndPoint() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteEndPoint() {
      return rerouteEndPoint_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.getDefaultInstance() : rerouteEndPoint_;
    }
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     */
    private void setRerouteEndPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  rerouteEndPoint_ = value;
      bitField0_ |= 0x00000002;
      }
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRerouteEndPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  if (rerouteEndPoint_ != null &&
          rerouteEndPoint_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.getDefaultInstance()) {
        rerouteEndPoint_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.newBuilder(rerouteEndPoint_).mergeFrom(value).buildPartial();
      } else {
        rerouteEndPoint_ = value;
      }
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .route_point_msg reroute_end_point = 2;</code>
     */
    private void clearRerouteEndPoint() {  rerouteEndPoint_ = null;
      bitField0_ = (bitField0_ & ~0x00000002);
    }

    public static final int REROUTE_PASS_POINT_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> reroutePassPoint_;
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> getReroutePassPointList() {
      return reroutePassPoint_;
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msgOrBuilder> 
        getReroutePassPointOrBuilderList() {
      return reroutePassPoint_;
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    @java.lang.Override
    public int getReroutePassPointCount() {
      return reroutePassPoint_.size();
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getReroutePassPoint(int index) {
      return reroutePassPoint_.get(index);
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msgOrBuilder getReroutePassPointOrBuilder(
        int index) {
      return reroutePassPoint_.get(index);
    }
    private void ensureReroutePassPointIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> tmp = reroutePassPoint_;
      if (!tmp.isModifiable()) {
        reroutePassPoint_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void setReroutePassPoint(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  ensureReroutePassPointIsMutable();
      reroutePassPoint_.set(index, value);
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void addReroutePassPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  ensureReroutePassPointIsMutable();
      reroutePassPoint_.add(value);
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void addReroutePassPoint(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
      value.getClass();
  ensureReroutePassPointIsMutable();
      reroutePassPoint_.add(index, value);
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void addAllReroutePassPoint(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> values) {
      ensureReroutePassPointIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, reroutePassPoint_);
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void clearReroutePassPoint() {
      reroutePassPoint_ = emptyProtobufList();
    }
    /**
     * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
     */
    private void removeReroutePassPoint(int index) {
      ensureReroutePassPointIsMutable();
      reroutePassPoint_.remove(index);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message 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.RoutePlan.reroute_point_info_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      @java.lang.Override
      public boolean hasRerouteStartPoint() {
        return instance.hasRerouteStartPoint();
      }
      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteStartPoint() {
        return instance.getRerouteStartPoint();
      }
      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      public Builder setRerouteStartPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.setRerouteStartPoint(value);
        return this;
        }
      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      public Builder setRerouteStartPoint(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setRerouteStartPoint(builderForValue.build());
        return this;
      }
      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      public Builder mergeRerouteStartPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.mergeRerouteStartPoint(value);
        return this;
      }
      /**
       * <code>required .route_point_msg reroute_start_point = 1;</code>
       */
      public Builder clearRerouteStartPoint() {  copyOnWrite();
        instance.clearRerouteStartPoint();
        return this;
      }

      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      @java.lang.Override
      public boolean hasRerouteEndPoint() {
        return instance.hasRerouteEndPoint();
      }
      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getRerouteEndPoint() {
        return instance.getRerouteEndPoint();
      }
      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      public Builder setRerouteEndPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.setRerouteEndPoint(value);
        return this;
        }
      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      public Builder setRerouteEndPoint(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setRerouteEndPoint(builderForValue.build());
        return this;
      }
      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      public Builder mergeRerouteEndPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.mergeRerouteEndPoint(value);
        return this;
      }
      /**
       * <code>required .route_point_msg reroute_end_point = 2;</code>
       */
      public Builder clearRerouteEndPoint() {  copyOnWrite();
        instance.clearRerouteEndPoint();
        return this;
      }

      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> getReroutePassPointList() {
        return java.util.Collections.unmodifiableList(
            instance.getReroutePassPointList());
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      @java.lang.Override
      public int getReroutePassPointCount() {
        return instance.getReroutePassPointCount();
      }/**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg getReroutePassPoint(int index) {
        return instance.getReroutePassPoint(index);
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder setReroutePassPoint(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.setReroutePassPoint(index, value);
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder setReroutePassPoint(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setReroutePassPoint(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder addReroutePassPoint(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.addReroutePassPoint(value);
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder addReroutePassPoint(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg value) {
        copyOnWrite();
        instance.addReroutePassPoint(index, value);
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder addReroutePassPoint(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addReroutePassPoint(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder addReroutePassPoint(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addReroutePassPoint(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder addAllReroutePassPoint(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg> values) {
        copyOnWrite();
        instance.addAllReroutePassPoint(values);
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder clearReroutePassPoint() {
        copyOnWrite();
        instance.clearReroutePassPoint();
        return this;
      }
      /**
       * <code>repeated .route_point_msg reroute_pass_point = 3;</code>
       */
      public Builder removeReroutePassPoint(int index) {
        copyOnWrite();
        instance.removeReroutePassPoint(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:reroute_point_info_message)
    }
    private byte memoizedIsInitialized = 2;
    @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.RoutePlan.reroute_point_info_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "rerouteStartPoint_",
              "rerouteEndPoint_",
              "reroutePassPoint_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_point_msg.class,
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0001\u0002\u0001\u1509\u0000\u0002" +
                "\u1509\u0001\u0003\u001b";
            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.RoutePlan.reroute_point_info_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return memoizedIsInitialized;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


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

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

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

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

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

    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     * @return Whether the serviceType field is set.
     */
    boolean hasServiceType();
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     * @return The serviceType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType();

    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     * @return Whether the routePlanOperateType field is set.
     */
    boolean hasRoutePlanOperateType();
    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     * @return The routePlanOperateType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE getRoutePlanOperateType();

    /**
     * <code>repeated string line_id = 3;</code>
     * @return A list containing the lineId.
     */
    java.util.List<java.lang.String>
        getLineIdList();
    /**
     * <code>repeated string line_id = 3;</code>
     * @return The count of lineId.
     */
    int getLineIdCount();
    /**
     * <code>repeated string line_id = 3;</code>
     * @param index The index of the element to return.
     * @return The lineId at the given index.
     */
    java.lang.String getLineId(int index);
    /**
     * <code>repeated string line_id = 3;</code>
     * @param index The index of the element to return.
     * @return The lineId at the given index.
     */
    com.google.protobuf.ByteString
        getLineIdBytes(int index);

    /**
     * <code>optional bytes file_content = 4;</code>
     * @return Whether the fileContent field is set.
     */
    boolean hasFileContent();
    /**
     * <code>optional bytes file_content = 4;</code>
     * @return The fileContent.
     */
    com.google.protobuf.ByteString getFileContent();

    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> 
        getRoutePlanInfoMsgList();
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message getRoutePlanInfoMsg(int index);
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    int getRoutePlanInfoMsgCount();

    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     * @return Whether the reroutePointMsg field is set.
     */
    boolean hasReroutePointMsg();
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     * @return The reroutePointMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message getReroutePointMsg();

    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     * @return Whether the routeListGetMsg field is set.
     */
    boolean hasRouteListGetMsg();
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     * @return The routeListGetMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message getRouteListGetMsg();
  }
  /**
   * Protobuf type {@code route_plan_data_msg}
   */
  public  static final class route_plan_data_msg extends
      com.google.protobuf.GeneratedMessageLite<
          route_plan_data_msg, route_plan_data_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:route_plan_data_msg)
      route_plan_data_msgOrBuilder {
    private route_plan_data_msg() {
      serviceType_ = 7;
      lineId_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      fileContent_ = com.google.protobuf.ByteString.EMPTY;
      routePlanInfoMsg_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int SERVICE_TYPE_FIELD_NUMBER = 1;
    private int serviceType_;
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     * @return Whether the serviceType field is set.
     */
    @java.lang.Override
    public boolean hasServiceType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     * @return The serviceType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.forNumber(serviceType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.enum_SERVICE_TYPE_INDEX_ROUTE_PLAN : result;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     * @param value The serviceType to set.
     */
    private void setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
      serviceType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
     */
    private void clearServiceType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serviceType_ = 7;
    }

    public static final int ROUTE_PLAN_OPERATE_TYPE_FIELD_NUMBER = 2;
    private int routePlanOperateType_;
    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     * @return Whether the routePlanOperateType field is set.
     */
    @java.lang.Override
    public boolean hasRoutePlanOperateType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     * @return The routePlanOperateType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE getRoutePlanOperateType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE.forNumber(routePlanOperateType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE.enum_ROUTE_PLAN_OPERATE_TYPE_NONE : result;
    }
    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     * @param value The routePlanOperateType to set.
     */
    private void setRoutePlanOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE value) {
      routePlanOperateType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
     */
    private void clearRoutePlanOperateType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      routePlanOperateType_ = 0;
    }

    public static final int LINE_ID_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> lineId_;
    /**
     * <code>repeated string line_id = 3;</code>
     * @return A list containing the lineId.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getLineIdList() {
      return lineId_;
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @return The count of lineId.
     */
    @java.lang.Override
    public int getLineIdCount() {
      return lineId_.size();
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param index The index of the element to return.
     * @return The lineId at the given index.
     */
    @java.lang.Override
    public java.lang.String getLineId(int index) {
      return lineId_.get(index);
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the lineId at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLineIdBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          lineId_.get(index));
    }
    private void ensureLineIdIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          lineId_;  if (!tmp.isModifiable()) {
        lineId_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param index The index to set the value at.
     * @param value The lineId to set.
     */
    private void setLineId(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureLineIdIsMutable();
      lineId_.set(index, value);
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param value The lineId to add.
     */
    private void addLineId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureLineIdIsMutable();
      lineId_.add(value);
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param values The lineId to add.
     */
    private void addAllLineId(
        java.lang.Iterable<java.lang.String> values) {
      ensureLineIdIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, lineId_);
    }
    /**
     * <code>repeated string line_id = 3;</code>
     */
    private void clearLineId() {
      lineId_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <code>repeated string line_id = 3;</code>
     * @param value The bytes of the lineId to add.
     */
    private void addLineIdBytes(
        com.google.protobuf.ByteString value) {
      ensureLineIdIsMutable();
      lineId_.add(value.toStringUtf8());
    }

    public static final int FILE_CONTENT_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString fileContent_;
    /**
     * <code>optional bytes file_content = 4;</code>
     * @return Whether the fileContent field is set.
     */
    @java.lang.Override
    public boolean hasFileContent() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes file_content = 4;</code>
     * @return The fileContent.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getFileContent() {
      return fileContent_;
    }
    /**
     * <code>optional bytes file_content = 4;</code>
     * @param value The fileContent to set.
     */
    private void setFileContent(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000004;
      fileContent_ = value;
    }
    /**
     * <code>optional bytes file_content = 4;</code>
     */
    private void clearFileContent() {
      bitField0_ = (bitField0_ & ~0x00000004);
      fileContent_ = getDefaultInstance().getFileContent();
    }

    public static final int ROUTE_PLAN_INFO_MSG_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> routePlanInfoMsg_;
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> getRoutePlanInfoMsgList() {
      return routePlanInfoMsg_;
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_messageOrBuilder> 
        getRoutePlanInfoMsgOrBuilderList() {
      return routePlanInfoMsg_;
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    @java.lang.Override
    public int getRoutePlanInfoMsgCount() {
      return routePlanInfoMsg_.size();
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message getRoutePlanInfoMsg(int index) {
      return routePlanInfoMsg_.get(index);
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_messageOrBuilder getRoutePlanInfoMsgOrBuilder(
        int index) {
      return routePlanInfoMsg_.get(index);
    }
    private void ensureRoutePlanInfoMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> tmp = routePlanInfoMsg_;
      if (!tmp.isModifiable()) {
        routePlanInfoMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void setRoutePlanInfoMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
      value.getClass();
  ensureRoutePlanInfoMsgIsMutable();
      routePlanInfoMsg_.set(index, value);
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void addRoutePlanInfoMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
      value.getClass();
  ensureRoutePlanInfoMsgIsMutable();
      routePlanInfoMsg_.add(value);
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void addRoutePlanInfoMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
      value.getClass();
  ensureRoutePlanInfoMsgIsMutable();
      routePlanInfoMsg_.add(index, value);
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void addAllRoutePlanInfoMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> values) {
      ensureRoutePlanInfoMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, routePlanInfoMsg_);
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void clearRoutePlanInfoMsg() {
      routePlanInfoMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
     */
    private void removeRoutePlanInfoMsg(int index) {
      ensureRoutePlanInfoMsgIsMutable();
      routePlanInfoMsg_.remove(index);
    }

    public static final int REROUTE_POINT_MSG_FIELD_NUMBER = 6;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message reroutePointMsg_;
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     */
    @java.lang.Override
    public boolean hasReroutePointMsg() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message getReroutePointMsg() {
      return reroutePointMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message.getDefaultInstance() : reroutePointMsg_;
    }
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     */
    private void setReroutePointMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message value) {
      value.getClass();
  reroutePointMsg_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeReroutePointMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message value) {
      value.getClass();
  if (reroutePointMsg_ != null &&
          reroutePointMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message.getDefaultInstance()) {
        reroutePointMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message.newBuilder(reroutePointMsg_).mergeFrom(value).buildPartial();
      } else {
        reroutePointMsg_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
     */
    private void clearReroutePointMsg() {  reroutePointMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int ROUTE_LIST_GET_MSG_FIELD_NUMBER = 12;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message routeListGetMsg_;
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     */
    @java.lang.Override
    public boolean hasRouteListGetMsg() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message getRouteListGetMsg() {
      return routeListGetMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message.getDefaultInstance() : routeListGetMsg_;
    }
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     */
    private void setRouteListGetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message value) {
      value.getClass();
  routeListGetMsg_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRouteListGetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message value) {
      value.getClass();
  if (routeListGetMsg_ != null &&
          routeListGetMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message.getDefaultInstance()) {
        routeListGetMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message.newBuilder(routeListGetMsg_).mergeFrom(value).buildPartial();
      } else {
        routeListGetMsg_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
     */
    private void clearRouteListGetMsg() {  routeListGetMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg 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.RoutePlan.route_plan_data_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
       * @return Whether the serviceType field is set.
       */
      @java.lang.Override
      public boolean hasServiceType() {
        return instance.hasServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
       * @return The serviceType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
        return instance.getServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
       * @param value The enum numeric value on the wire for serviceType to set.
       * @return This builder for chaining.
       */
      public Builder setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
        copyOnWrite();
        instance.setServiceType(value);
        return this;
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_ROUTE_PLAN];</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceType() {
        copyOnWrite();
        instance.clearServiceType();
        return this;
      }

      /**
       * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
       * @return Whether the routePlanOperateType field is set.
       */
      @java.lang.Override
      public boolean hasRoutePlanOperateType() {
        return instance.hasRoutePlanOperateType();
      }
      /**
       * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
       * @return The routePlanOperateType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE getRoutePlanOperateType() {
        return instance.getRoutePlanOperateType();
      }
      /**
       * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for routePlanOperateType to set.
       * @return This builder for chaining.
       */
      public Builder setRoutePlanOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE value) {
        copyOnWrite();
        instance.setRoutePlanOperateType(value);
        return this;
      }
      /**
       * <code>required .ROUTE_PLAN_OPERATE_TYPE route_plan_operate_type = 2 [default = enum_ROUTE_PLAN_OPERATE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoutePlanOperateType() {
        copyOnWrite();
        instance.clearRoutePlanOperateType();
        return this;
      }

      /**
       * <code>repeated string line_id = 3;</code>
       * @return A list containing the lineId.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getLineIdList() {
        return java.util.Collections.unmodifiableList(
            instance.getLineIdList());
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @return The count of lineId.
       */
      @java.lang.Override
      public int getLineIdCount() {
        return instance.getLineIdCount();
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param index The index of the element to return.
       * @return The lineId at the given index.
       */
      @java.lang.Override
      public java.lang.String getLineId(int index) {
        return instance.getLineId(index);
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param index The index of the value to return.
       * @return The bytes of the lineId at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getLineIdBytes(int index) {
        return instance.getLineIdBytes(index);
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param index The index to set the value at.
       * @param value The lineId to set.
       * @return This builder for chaining.
       */
      public Builder setLineId(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setLineId(index, value);
        return this;
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param value The lineId to add.
       * @return This builder for chaining.
       */
      public Builder addLineId(
          java.lang.String value) {
        copyOnWrite();
        instance.addLineId(value);
        return this;
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param values The lineId to add.
       * @return This builder for chaining.
       */
      public Builder addAllLineId(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllLineId(values);
        return this;
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLineId() {
        copyOnWrite();
        instance.clearLineId();
        return this;
      }
      /**
       * <code>repeated string line_id = 3;</code>
       * @param value The bytes of the lineId to add.
       * @return This builder for chaining.
       */
      public Builder addLineIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addLineIdBytes(value);
        return this;
      }

      /**
       * <code>optional bytes file_content = 4;</code>
       * @return Whether the fileContent field is set.
       */
      @java.lang.Override
      public boolean hasFileContent() {
        return instance.hasFileContent();
      }
      /**
       * <code>optional bytes file_content = 4;</code>
       * @return The fileContent.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getFileContent() {
        return instance.getFileContent();
      }
      /**
       * <code>optional bytes file_content = 4;</code>
       * @param value The fileContent to set.
       * @return This builder for chaining.
       */
      public Builder setFileContent(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFileContent(value);
        return this;
      }
      /**
       * <code>optional bytes file_content = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileContent() {
        copyOnWrite();
        instance.clearFileContent();
        return this;
      }

      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> getRoutePlanInfoMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getRoutePlanInfoMsgList());
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      @java.lang.Override
      public int getRoutePlanInfoMsgCount() {
        return instance.getRoutePlanInfoMsgCount();
      }/**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message getRoutePlanInfoMsg(int index) {
        return instance.getRoutePlanInfoMsg(index);
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder setRoutePlanInfoMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
        copyOnWrite();
        instance.setRoutePlanInfoMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder setRoutePlanInfoMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message.Builder builderForValue) {
        copyOnWrite();
        instance.setRoutePlanInfoMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder addRoutePlanInfoMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
        copyOnWrite();
        instance.addRoutePlanInfoMsg(value);
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder addRoutePlanInfoMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message value) {
        copyOnWrite();
        instance.addRoutePlanInfoMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder addRoutePlanInfoMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message.Builder builderForValue) {
        copyOnWrite();
        instance.addRoutePlanInfoMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder addRoutePlanInfoMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message.Builder builderForValue) {
        copyOnWrite();
        instance.addRoutePlanInfoMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder addAllRoutePlanInfoMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message> values) {
        copyOnWrite();
        instance.addAllRoutePlanInfoMsg(values);
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder clearRoutePlanInfoMsg() {
        copyOnWrite();
        instance.clearRoutePlanInfoMsg();
        return this;
      }
      /**
       * <code>repeated .route_plan_info_message route_plan_info_msg = 5;</code>
       */
      public Builder removeRoutePlanInfoMsg(int index) {
        copyOnWrite();
        instance.removeRoutePlanInfoMsg(index);
        return this;
      }

      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      @java.lang.Override
      public boolean hasReroutePointMsg() {
        return instance.hasReroutePointMsg();
      }
      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message getReroutePointMsg() {
        return instance.getReroutePointMsg();
      }
      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      public Builder setReroutePointMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message value) {
        copyOnWrite();
        instance.setReroutePointMsg(value);
        return this;
        }
      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      public Builder setReroutePointMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message.Builder builderForValue) {
        copyOnWrite();
        instance.setReroutePointMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      public Builder mergeReroutePointMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.reroute_point_info_message value) {
        copyOnWrite();
        instance.mergeReroutePointMsg(value);
        return this;
      }
      /**
       * <code>optional .reroute_point_info_message reroute_point_msg = 6;</code>
       */
      public Builder clearReroutePointMsg() {  copyOnWrite();
        instance.clearReroutePointMsg();
        return this;
      }

      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      @java.lang.Override
      public boolean hasRouteListGetMsg() {
        return instance.hasRouteListGetMsg();
      }
      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message getRouteListGetMsg() {
        return instance.getRouteListGetMsg();
      }
      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      public Builder setRouteListGetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message value) {
        copyOnWrite();
        instance.setRouteListGetMsg(value);
        return this;
        }
      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      public Builder setRouteListGetMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message.Builder builderForValue) {
        copyOnWrite();
        instance.setRouteListGetMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      public Builder mergeRouteListGetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.file_list_get_message value) {
        copyOnWrite();
        instance.mergeRouteListGetMsg(value);
        return this;
      }
      /**
       * <code>optional .file_list_get_message route_list_get_msg = 12;</code>
       */
      public Builder clearRouteListGetMsg() {  copyOnWrite();
        instance.clearRouteListGetMsg();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:route_plan_data_msg)
    }
    private byte memoizedIsInitialized = 2;
    @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.RoutePlan.route_plan_data_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "serviceType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.internalGetVerifier(),
              "routePlanOperateType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.ROUTE_PLAN_OPERATE_TYPE.internalGetVerifier(),
              "lineId_",
              "fileContent_",
              "routePlanInfoMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_info_message.class,
              "reroutePointMsg_",
              "routeListGetMsg_",
            };
            java.lang.String info =
                "\u0001\u0007\u0000\u0001\u0001\f\u0007\u0000\u0002\u0003\u0001\u150c\u0000\u0002" +
                "\u150c\u0001\u0003\u001a\u0004\u100a\u0002\u0005\u001b\u0006\u1409\u0003\f\u1009" +
                "\u0004";
            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.RoutePlan.route_plan_data_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_data_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.RoutePlan.route_plan_data_msg>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return memoizedIsInitialized;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


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

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

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
