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

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class GeneralFileOperation {
  private GeneralFileOperation() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code file_operation_type}
   */
  public enum file_operation_type
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_FILE_TYPE_GENERAL = 0;</code>
     */
    enum_FILE_TYPE_GENERAL(0),
    /**
     * <code>enum_FILE_TYPE_TRAINING = 1;</code>
     */
    enum_FILE_TYPE_TRAINING(1),
    /**
     * <code>enum_FILE_TYPE_ROUTE_PLAN = 2;</code>
     */
    enum_FILE_TYPE_ROUTE_PLAN(2),
    /**
     * <code>enum_FILE_TYPE_MAP = 3;</code>
     */
    enum_FILE_TYPE_MAP(3),
    /**
     * <code>enum_FILE_TYPE_THEME = 4;</code>
     */
    enum_FILE_TYPE_THEME(4),
    /**
     * <code>enum_FILE_TYPE_FIRMWARE = 5;</code>
     */
    enum_FILE_TYPE_FIRMWARE(5),
    /**
     * <code>enum_FILE_TYPE_LANGUAGE = 6;</code>
     */
    enum_FILE_TYPE_LANGUAGE(6),
    /**
     * <code>enum_FILE_TYPE_AGPS = 7;</code>
     */
    enum_FILE_TYPE_AGPS(7),
    /**
     * <code>enum_FILE_TYPE_ROUTE_BOOK = 8;</code>
     */
    enum_FILE_TYPE_ROUTE_BOOK(8),
    /**
     * <code>enum_FILE_TYPE_STAGE = 9;</code>
     */
    enum_FILE_TYPE_STAGE(9),
    /**
     * <code>enum_FILE_TYPE_POWERON_IMG = 10;</code>
     */
    enum_FILE_TYPE_POWERON_IMG(10),
    /**
     * <code>enum_FILE_TYPE_SCHEDULE = 11;</code>
     */
    enum_FILE_TYPE_SCHEDULE(11),
    /**
     * <code>enum_FILE_TYPE_THEME_BACKGOUND = 12;</code>
     */
    enum_FILE_TYPE_THEME_BACKGOUND(12),
    /**
     * <code>enum_FILE_TYPE_GROUP_RIDE_USER_HEAD_PORTRAIT = 13;</code>
     */
    enum_FILE_TYPE_GROUP_RIDE_USER_HEAD_PORTRAIT(13),
    /**
     * <code>enum_FILE_TYPE_CLOUD_SWITCH_DEV = 14;</code>
     */
    enum_FILE_TYPE_CLOUD_SWITCH_DEV(14),
    /**
     * <code>enum_FILE_TYPE_GROUP_RIDE_ROUTE_BOOK = 15;</code>
     */
    enum_FILE_TYPE_GROUP_RIDE_ROUTE_BOOK(15),
    /**
     * <code>enum_FILE_TYPE_WATCH_DIAL = 16;</code>
     */
    enum_FILE_TYPE_WATCH_DIAL(16),
    /**
     * <code>enum_FILE_TYPE_YAW_ANT_RENAVI_BOOK = 17;</code>
     */
    enum_FILE_TYPE_YAW_ANT_RENAVI_BOOK(17),
    ;

    /**
     * <code>enum_FILE_TYPE_GENERAL = 0;</code>
     */
    public static final int enum_FILE_TYPE_GENERAL_VALUE = 0;
    /**
     * <code>enum_FILE_TYPE_TRAINING = 1;</code>
     */
    public static final int enum_FILE_TYPE_TRAINING_VALUE = 1;
    /**
     * <code>enum_FILE_TYPE_ROUTE_PLAN = 2;</code>
     */
    public static final int enum_FILE_TYPE_ROUTE_PLAN_VALUE = 2;
    /**
     * <code>enum_FILE_TYPE_MAP = 3;</code>
     */
    public static final int enum_FILE_TYPE_MAP_VALUE = 3;
    /**
     * <code>enum_FILE_TYPE_THEME = 4;</code>
     */
    public static final int enum_FILE_TYPE_THEME_VALUE = 4;
    /**
     * <code>enum_FILE_TYPE_FIRMWARE = 5;</code>
     */
    public static final int enum_FILE_TYPE_FIRMWARE_VALUE = 5;
    /**
     * <code>enum_FILE_TYPE_LANGUAGE = 6;</code>
     */
    public static final int enum_FILE_TYPE_LANGUAGE_VALUE = 6;
    /**
     * <code>enum_FILE_TYPE_AGPS = 7;</code>
     */
    public static final int enum_FILE_TYPE_AGPS_VALUE = 7;
    /**
     * <code>enum_FILE_TYPE_ROUTE_BOOK = 8;</code>
     */
    public static final int enum_FILE_TYPE_ROUTE_BOOK_VALUE = 8;
    /**
     * <code>enum_FILE_TYPE_STAGE = 9;</code>
     */
    public static final int enum_FILE_TYPE_STAGE_VALUE = 9;
    /**
     * <code>enum_FILE_TYPE_POWERON_IMG = 10;</code>
     */
    public static final int enum_FILE_TYPE_POWERON_IMG_VALUE = 10;
    /**
     * <code>enum_FILE_TYPE_SCHEDULE = 11;</code>
     */
    public static final int enum_FILE_TYPE_SCHEDULE_VALUE = 11;
    /**
     * <code>enum_FILE_TYPE_THEME_BACKGOUND = 12;</code>
     */
    public static final int enum_FILE_TYPE_THEME_BACKGOUND_VALUE = 12;
    /**
     * <code>enum_FILE_TYPE_GROUP_RIDE_USER_HEAD_PORTRAIT = 13;</code>
     */
    public static final int enum_FILE_TYPE_GROUP_RIDE_USER_HEAD_PORTRAIT_VALUE = 13;
    /**
     * <code>enum_FILE_TYPE_CLOUD_SWITCH_DEV = 14;</code>
     */
    public static final int enum_FILE_TYPE_CLOUD_SWITCH_DEV_VALUE = 14;
    /**
     * <code>enum_FILE_TYPE_GROUP_RIDE_ROUTE_BOOK = 15;</code>
     */
    public static final int enum_FILE_TYPE_GROUP_RIDE_ROUTE_BOOK_VALUE = 15;
    /**
     * <code>enum_FILE_TYPE_WATCH_DIAL = 16;</code>
     */
    public static final int enum_FILE_TYPE_WATCH_DIAL_VALUE = 16;
    /**
     * <code>enum_FILE_TYPE_YAW_ANT_RENAVI_BOOK = 17;</code>
     */
    public static final int enum_FILE_TYPE_YAW_ANT_RENAVI_BOOK_VALUE = 17;


    @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 file_operation_type valueOf(int value) {
      return forNumber(value);
    }

    public static file_operation_type forNumber(int value) {
      switch (value) {
        case 0: return enum_FILE_TYPE_GENERAL;
        case 1: return enum_FILE_TYPE_TRAINING;
        case 2: return enum_FILE_TYPE_ROUTE_PLAN;
        case 3: return enum_FILE_TYPE_MAP;
        case 4: return enum_FILE_TYPE_THEME;
        case 5: return enum_FILE_TYPE_FIRMWARE;
        case 6: return enum_FILE_TYPE_LANGUAGE;
        case 7: return enum_FILE_TYPE_AGPS;
        case 8: return enum_FILE_TYPE_ROUTE_BOOK;
        case 9: return enum_FILE_TYPE_STAGE;
        case 10: return enum_FILE_TYPE_POWERON_IMG;
        case 11: return enum_FILE_TYPE_SCHEDULE;
        case 12: return enum_FILE_TYPE_THEME_BACKGOUND;
        case 13: return enum_FILE_TYPE_GROUP_RIDE_USER_HEAD_PORTRAIT;
        case 14: return enum_FILE_TYPE_CLOUD_SWITCH_DEV;
        case 15: return enum_FILE_TYPE_GROUP_RIDE_ROUTE_BOOK;
        case 16: return enum_FILE_TYPE_WATCH_DIAL;
        case 17: return enum_FILE_TYPE_YAW_ANT_RENAVI_BOOK;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:file_operation_type)
  }

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

    /**
     * <code>optional int32 distance = 1;</code>
     * @return Whether the distance field is set.
     */
    boolean hasDistance();
    /**
     * <code>optional int32 distance = 1;</code>
     * @return The distance.
     */
    int getDistance();

    /**
     * <code>optional int32 totalAscent = 2;</code>
     * @return Whether the totalAscent field is set.
     */
    boolean hasTotalAscent();
    /**
     * <code>optional int32 totalAscent = 2;</code>
     * @return The totalAscent.
     */
    int getTotalAscent();

    /**
     * <code>optional int32 avgSlope = 3;</code>
     * @return Whether the avgSlope field is set.
     */
    boolean hasAvgSlope();
    /**
     * <code>optional int32 avgSlope = 3;</code>
     * @return The avgSlope.
     */
    int getAvgSlope();
  }
  /**
   * Protobuf type {@code file_extra_Info}
   */
  public  static final class file_extra_Info extends
      com.google.protobuf.GeneratedMessageLite<
          file_extra_Info, file_extra_Info.Builder> implements
      // @@protoc_insertion_point(message_implements:file_extra_Info)
      file_extra_InfoOrBuilder {
    private file_extra_Info() {
    }
    private int bitField0_;
    public static final int DISTANCE_FIELD_NUMBER = 1;
    private int distance_;
    /**
     * <code>optional int32 distance = 1;</code>
     * @return Whether the distance field is set.
     */
    @java.lang.Override
    public boolean hasDistance() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 distance = 1;</code>
     * @return The distance.
     */
    @java.lang.Override
    public int getDistance() {
      return distance_;
    }
    /**
     * <code>optional int32 distance = 1;</code>
     * @param value The distance to set.
     */
    private void setDistance(int value) {
      bitField0_ |= 0x00000001;
      distance_ = value;
    }
    /**
     * <code>optional int32 distance = 1;</code>
     */
    private void clearDistance() {
      bitField0_ = (bitField0_ & ~0x00000001);
      distance_ = 0;
    }

    public static final int TOTALASCENT_FIELD_NUMBER = 2;
    private int totalAscent_;
    /**
     * <code>optional int32 totalAscent = 2;</code>
     * @return Whether the totalAscent field is set.
     */
    @java.lang.Override
    public boolean hasTotalAscent() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 totalAscent = 2;</code>
     * @return The totalAscent.
     */
    @java.lang.Override
    public int getTotalAscent() {
      return totalAscent_;
    }
    /**
     * <code>optional int32 totalAscent = 2;</code>
     * @param value The totalAscent to set.
     */
    private void setTotalAscent(int value) {
      bitField0_ |= 0x00000002;
      totalAscent_ = value;
    }
    /**
     * <code>optional int32 totalAscent = 2;</code>
     */
    private void clearTotalAscent() {
      bitField0_ = (bitField0_ & ~0x00000002);
      totalAscent_ = 0;
    }

    public static final int AVGSLOPE_FIELD_NUMBER = 3;
    private int avgSlope_;
    /**
     * <code>optional int32 avgSlope = 3;</code>
     * @return Whether the avgSlope field is set.
     */
    @java.lang.Override
    public boolean hasAvgSlope() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 avgSlope = 3;</code>
     * @return The avgSlope.
     */
    @java.lang.Override
    public int getAvgSlope() {
      return avgSlope_;
    }
    /**
     * <code>optional int32 avgSlope = 3;</code>
     * @param value The avgSlope to set.
     */
    private void setAvgSlope(int value) {
      bitField0_ |= 0x00000004;
      avgSlope_ = value;
    }
    /**
     * <code>optional int32 avgSlope = 3;</code>
     */
    private void clearAvgSlope() {
      bitField0_ = (bitField0_ & ~0x00000004);
      avgSlope_ = 0;
    }

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

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


      /**
       * <code>optional int32 distance = 1;</code>
       * @return Whether the distance field is set.
       */
      @java.lang.Override
      public boolean hasDistance() {
        return instance.hasDistance();
      }
      /**
       * <code>optional int32 distance = 1;</code>
       * @return The distance.
       */
      @java.lang.Override
      public int getDistance() {
        return instance.getDistance();
      }
      /**
       * <code>optional int32 distance = 1;</code>
       * @param value The distance to set.
       * @return This builder for chaining.
       */
      public Builder setDistance(int value) {
        copyOnWrite();
        instance.setDistance(value);
        return this;
      }
      /**
       * <code>optional int32 distance = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDistance() {
        copyOnWrite();
        instance.clearDistance();
        return this;
      }

      /**
       * <code>optional int32 totalAscent = 2;</code>
       * @return Whether the totalAscent field is set.
       */
      @java.lang.Override
      public boolean hasTotalAscent() {
        return instance.hasTotalAscent();
      }
      /**
       * <code>optional int32 totalAscent = 2;</code>
       * @return The totalAscent.
       */
      @java.lang.Override
      public int getTotalAscent() {
        return instance.getTotalAscent();
      }
      /**
       * <code>optional int32 totalAscent = 2;</code>
       * @param value The totalAscent to set.
       * @return This builder for chaining.
       */
      public Builder setTotalAscent(int value) {
        copyOnWrite();
        instance.setTotalAscent(value);
        return this;
      }
      /**
       * <code>optional int32 totalAscent = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalAscent() {
        copyOnWrite();
        instance.clearTotalAscent();
        return this;
      }

      /**
       * <code>optional int32 avgSlope = 3;</code>
       * @return Whether the avgSlope field is set.
       */
      @java.lang.Override
      public boolean hasAvgSlope() {
        return instance.hasAvgSlope();
      }
      /**
       * <code>optional int32 avgSlope = 3;</code>
       * @return The avgSlope.
       */
      @java.lang.Override
      public int getAvgSlope() {
        return instance.getAvgSlope();
      }
      /**
       * <code>optional int32 avgSlope = 3;</code>
       * @param value The avgSlope to set.
       * @return This builder for chaining.
       */
      public Builder setAvgSlope(int value) {
        copyOnWrite();
        instance.setAvgSlope(value);
        return this;
      }
      /**
       * <code>optional int32 avgSlope = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvgSlope() {
        copyOnWrite();
        instance.clearAvgSlope();
        return this;
      }

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

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

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

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

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

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

    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     * @return The operateType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE getOperateType();

    /**
     * <code>required .file_operation_type file_type = 3;</code>
     * @return Whether the fileType field is set.
     */
    boolean hasFileType();
    /**
     * <code>required .file_operation_type file_type = 3;</code>
     * @return The fileType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type getFileType();

    /**
     * <code>required uint32 file_size = 4;</code>
     * @return Whether the fileSize field is set.
     */
    boolean hasFileSize();
    /**
     * <code>required uint32 file_size = 4;</code>
     * @return The fileSize.
     */
    int getFileSize();

    /**
     * <code>required uint32 file_id = 5;</code>
     * @return Whether the fileId field is set.
     */
    boolean hasFileId();
    /**
     * <code>required uint32 file_id = 5;</code>
     * @return The fileId.
     */
    int getFileId();

    /**
     * <code>optional string file_name = 6;</code>
     * @return Whether the fileName field is set.
     */
    boolean hasFileName();
    /**
     * <code>optional string file_name = 6;</code>
     * @return The fileName.
     */
    java.lang.String getFileName();
    /**
     * <code>optional string file_name = 6;</code>
     * @return The bytes for fileName.
     */
    com.google.protobuf.ByteString
        getFileNameBytes();

    /**
     * <code>optional string file_extension = 7;</code>
     * @return Whether the fileExtension field is set.
     */
    boolean hasFileExtension();
    /**
     * <code>optional string file_extension = 7;</code>
     * @return The fileExtension.
     */
    java.lang.String getFileExtension();
    /**
     * <code>optional string file_extension = 7;</code>
     * @return The bytes for fileExtension.
     */
    com.google.protobuf.ByteString
        getFileExtensionBytes();

    /**
     * <code>optional string file_md5 = 8;</code>
     * @return Whether the fileMd5 field is set.
     */
    boolean hasFileMd5();
    /**
     * <code>optional string file_md5 = 8;</code>
     * @return The fileMd5.
     */
    java.lang.String getFileMd5();
    /**
     * <code>optional string file_md5 = 8;</code>
     * @return The bytes for fileMd5.
     */
    com.google.protobuf.ByteString
        getFileMd5Bytes();

    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     * @return Whether the fileVerifyVal field is set.
     */
    boolean hasFileVerifyVal();
    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     * @return The fileVerifyVal.
     */
    int getFileVerifyVal();

    /**
     * <code>optional bool is_temp = 10;</code>
     * @return Whether the isTemp field is set.
     */
    boolean hasIsTemp();
    /**
     * <code>optional bool is_temp = 10;</code>
     * @return The isTemp.
     */
    boolean getIsTemp();

    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     * @return Whether the extraInfo field is set.
     */
    boolean hasExtraInfo();
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     * @return The extraInfo.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info getExtraInfo();
  }
  /**
   * Protobuf type {@code general_file_operation}
   */
  public  static final class general_file_operation extends
      com.google.protobuf.GeneratedMessageLite<
          general_file_operation, general_file_operation.Builder> implements
      // @@protoc_insertion_point(message_implements:general_file_operation)
      general_file_operationOrBuilder {
    private general_file_operation() {
      serviceType_ = 21;
      fileName_ = "";
      fileExtension_ = "";
      fileMd5_ = "";
    }
    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_FILE_OPERATION];</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_FILE_OPERATION];</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_FILE_OPERATION : result;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FILE_OPERATION];</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_FILE_OPERATION];</code>
     */
    private void clearServiceType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serviceType_ = 21;
    }

    public static final int OPERATE_TYPE_FIELD_NUMBER = 2;
    private int operateType_;
    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     * @return The operateType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE getOperateType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE.forNumber(operateType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE.enum_SERVICE_OPERATE_TYPE_NONE : result;
    }
    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     * @param value The operateType to set.
     */
    private void setOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE value) {
      operateType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
     */
    private void clearOperateType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      operateType_ = 0;
    }

    public static final int FILE_TYPE_FIELD_NUMBER = 3;
    private int fileType_;
    /**
     * <code>required .file_operation_type file_type = 3;</code>
     * @return Whether the fileType field is set.
     */
    @java.lang.Override
    public boolean hasFileType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .file_operation_type file_type = 3;</code>
     * @return The fileType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type getFileType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type.forNumber(fileType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type.enum_FILE_TYPE_GENERAL : result;
    }
    /**
     * <code>required .file_operation_type file_type = 3;</code>
     * @param value The fileType to set.
     */
    private void setFileType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type value) {
      fileType_ = value.getNumber();
      bitField0_ |= 0x00000004;
    }
    /**
     * <code>required .file_operation_type file_type = 3;</code>
     */
    private void clearFileType() {
      bitField0_ = (bitField0_ & ~0x00000004);
      fileType_ = 0;
    }

    public static final int FILE_SIZE_FIELD_NUMBER = 4;
    private int fileSize_;
    /**
     * <code>required uint32 file_size = 4;</code>
     * @return Whether the fileSize field is set.
     */
    @java.lang.Override
    public boolean hasFileSize() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 file_size = 4;</code>
     * @return The fileSize.
     */
    @java.lang.Override
    public int getFileSize() {
      return fileSize_;
    }
    /**
     * <code>required uint32 file_size = 4;</code>
     * @param value The fileSize to set.
     */
    private void setFileSize(int value) {
      bitField0_ |= 0x00000008;
      fileSize_ = value;
    }
    /**
     * <code>required uint32 file_size = 4;</code>
     */
    private void clearFileSize() {
      bitField0_ = (bitField0_ & ~0x00000008);
      fileSize_ = 0;
    }

    public static final int FILE_ID_FIELD_NUMBER = 5;
    private int fileId_;
    /**
     * <code>required uint32 file_id = 5;</code>
     * @return Whether the fileId field is set.
     */
    @java.lang.Override
    public boolean hasFileId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 file_id = 5;</code>
     * @return The fileId.
     */
    @java.lang.Override
    public int getFileId() {
      return fileId_;
    }
    /**
     * <code>required uint32 file_id = 5;</code>
     * @param value The fileId to set.
     */
    private void setFileId(int value) {
      bitField0_ |= 0x00000010;
      fileId_ = value;
    }
    /**
     * <code>required uint32 file_id = 5;</code>
     */
    private void clearFileId() {
      bitField0_ = (bitField0_ & ~0x00000010);
      fileId_ = 0;
    }

    public static final int FILE_NAME_FIELD_NUMBER = 6;
    private java.lang.String fileName_;
    /**
     * <code>optional string file_name = 6;</code>
     * @return Whether the fileName field is set.
     */
    @java.lang.Override
    public boolean hasFileName() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string file_name = 6;</code>
     * @return The fileName.
     */
    @java.lang.Override
    public java.lang.String getFileName() {
      return fileName_;
    }
    /**
     * <code>optional string file_name = 6;</code>
     * @return The bytes for fileName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFileNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(fileName_);
    }
    /**
     * <code>optional string file_name = 6;</code>
     * @param value The fileName to set.
     */
    private void setFileName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000020;
      fileName_ = value;
    }
    /**
     * <code>optional string file_name = 6;</code>
     */
    private void clearFileName() {
      bitField0_ = (bitField0_ & ~0x00000020);
      fileName_ = getDefaultInstance().getFileName();
    }
    /**
     * <code>optional string file_name = 6;</code>
     * @param value The bytes for fileName to set.
     */
    private void setFileNameBytes(
        com.google.protobuf.ByteString value) {
      fileName_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }

    public static final int FILE_EXTENSION_FIELD_NUMBER = 7;
    private java.lang.String fileExtension_;
    /**
     * <code>optional string file_extension = 7;</code>
     * @return Whether the fileExtension field is set.
     */
    @java.lang.Override
    public boolean hasFileExtension() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional string file_extension = 7;</code>
     * @return The fileExtension.
     */
    @java.lang.Override
    public java.lang.String getFileExtension() {
      return fileExtension_;
    }
    /**
     * <code>optional string file_extension = 7;</code>
     * @return The bytes for fileExtension.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFileExtensionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(fileExtension_);
    }
    /**
     * <code>optional string file_extension = 7;</code>
     * @param value The fileExtension to set.
     */
    private void setFileExtension(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000040;
      fileExtension_ = value;
    }
    /**
     * <code>optional string file_extension = 7;</code>
     */
    private void clearFileExtension() {
      bitField0_ = (bitField0_ & ~0x00000040);
      fileExtension_ = getDefaultInstance().getFileExtension();
    }
    /**
     * <code>optional string file_extension = 7;</code>
     * @param value The bytes for fileExtension to set.
     */
    private void setFileExtensionBytes(
        com.google.protobuf.ByteString value) {
      fileExtension_ = value.toStringUtf8();
      bitField0_ |= 0x00000040;
    }

    public static final int FILE_MD5_FIELD_NUMBER = 8;
    private java.lang.String fileMd5_;
    /**
     * <code>optional string file_md5 = 8;</code>
     * @return Whether the fileMd5 field is set.
     */
    @java.lang.Override
    public boolean hasFileMd5() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string file_md5 = 8;</code>
     * @return The fileMd5.
     */
    @java.lang.Override
    public java.lang.String getFileMd5() {
      return fileMd5_;
    }
    /**
     * <code>optional string file_md5 = 8;</code>
     * @return The bytes for fileMd5.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFileMd5Bytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(fileMd5_);
    }
    /**
     * <code>optional string file_md5 = 8;</code>
     * @param value The fileMd5 to set.
     */
    private void setFileMd5(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000080;
      fileMd5_ = value;
    }
    /**
     * <code>optional string file_md5 = 8;</code>
     */
    private void clearFileMd5() {
      bitField0_ = (bitField0_ & ~0x00000080);
      fileMd5_ = getDefaultInstance().getFileMd5();
    }
    /**
     * <code>optional string file_md5 = 8;</code>
     * @param value The bytes for fileMd5 to set.
     */
    private void setFileMd5Bytes(
        com.google.protobuf.ByteString value) {
      fileMd5_ = value.toStringUtf8();
      bitField0_ |= 0x00000080;
    }

    public static final int FILE_VERIFY_VAL_FIELD_NUMBER = 9;
    private int fileVerifyVal_;
    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     * @return Whether the fileVerifyVal field is set.
     */
    @java.lang.Override
    public boolean hasFileVerifyVal() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     * @return The fileVerifyVal.
     */
    @java.lang.Override
    public int getFileVerifyVal() {
      return fileVerifyVal_;
    }
    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     * @param value The fileVerifyVal to set.
     */
    private void setFileVerifyVal(int value) {
      bitField0_ |= 0x00000100;
      fileVerifyVal_ = value;
    }
    /**
     * <code>optional uint32 file_verify_val = 9;</code>
     */
    private void clearFileVerifyVal() {
      bitField0_ = (bitField0_ & ~0x00000100);
      fileVerifyVal_ = 0;
    }

    public static final int IS_TEMP_FIELD_NUMBER = 10;
    private boolean isTemp_;
    /**
     * <code>optional bool is_temp = 10;</code>
     * @return Whether the isTemp field is set.
     */
    @java.lang.Override
    public boolean hasIsTemp() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional bool is_temp = 10;</code>
     * @return The isTemp.
     */
    @java.lang.Override
    public boolean getIsTemp() {
      return isTemp_;
    }
    /**
     * <code>optional bool is_temp = 10;</code>
     * @param value The isTemp to set.
     */
    private void setIsTemp(boolean value) {
      bitField0_ |= 0x00000200;
      isTemp_ = value;
    }
    /**
     * <code>optional bool is_temp = 10;</code>
     */
    private void clearIsTemp() {
      bitField0_ = (bitField0_ & ~0x00000200);
      isTemp_ = false;
    }

    public static final int EXTRA_INFO_FIELD_NUMBER = 11;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info extraInfo_;
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     */
    @java.lang.Override
    public boolean hasExtraInfo() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info getExtraInfo() {
      return extraInfo_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info.getDefaultInstance() : extraInfo_;
    }
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     */
    private void setExtraInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info value) {
      value.getClass();
  extraInfo_ = value;
      bitField0_ |= 0x00000400;
      }
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeExtraInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info value) {
      value.getClass();
  if (extraInfo_ != null &&
          extraInfo_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info.getDefaultInstance()) {
        extraInfo_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info.newBuilder(extraInfo_).mergeFrom(value).buildPartial();
      } else {
        extraInfo_ = value;
      }
      bitField0_ |= 0x00000400;
    }
    /**
     * <code>optional .file_extra_Info extra_Info = 11;</code>
     */
    private void clearExtraInfo() {  extraInfo_ = null;
      bitField0_ = (bitField0_ & ~0x00000400);
    }

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

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


      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FILE_OPERATION];</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_FILE_OPERATION];</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_FILE_OPERATION];</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_FILE_OPERATION];</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceType() {
        copyOnWrite();
        instance.clearServiceType();
        return this;
      }

      /**
       * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return instance.hasOperateType();
      }
      /**
       * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
       * @return The operateType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE getOperateType() {
        return instance.getOperateType();
      }
      /**
       * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE value) {
        copyOnWrite();
        instance.setOperateType(value);
        return this;
      }
      /**
       * <code>required .SERVICE_OPERATE_TYPE operate_type = 2 [default = enum_SERVICE_OPERATE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        copyOnWrite();
        instance.clearOperateType();
        return this;
      }

      /**
       * <code>required .file_operation_type file_type = 3;</code>
       * @return Whether the fileType field is set.
       */
      @java.lang.Override
      public boolean hasFileType() {
        return instance.hasFileType();
      }
      /**
       * <code>required .file_operation_type file_type = 3;</code>
       * @return The fileType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type getFileType() {
        return instance.getFileType();
      }
      /**
       * <code>required .file_operation_type file_type = 3;</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.GeneralFileOperation.file_operation_type value) {
        copyOnWrite();
        instance.setFileType(value);
        return this;
      }
      /**
       * <code>required .file_operation_type file_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileType() {
        copyOnWrite();
        instance.clearFileType();
        return this;
      }

      /**
       * <code>required uint32 file_size = 4;</code>
       * @return Whether the fileSize field is set.
       */
      @java.lang.Override
      public boolean hasFileSize() {
        return instance.hasFileSize();
      }
      /**
       * <code>required uint32 file_size = 4;</code>
       * @return The fileSize.
       */
      @java.lang.Override
      public int getFileSize() {
        return instance.getFileSize();
      }
      /**
       * <code>required uint32 file_size = 4;</code>
       * @param value The fileSize to set.
       * @return This builder for chaining.
       */
      public Builder setFileSize(int value) {
        copyOnWrite();
        instance.setFileSize(value);
        return this;
      }
      /**
       * <code>required uint32 file_size = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileSize() {
        copyOnWrite();
        instance.clearFileSize();
        return this;
      }

      /**
       * <code>required uint32 file_id = 5;</code>
       * @return Whether the fileId field is set.
       */
      @java.lang.Override
      public boolean hasFileId() {
        return instance.hasFileId();
      }
      /**
       * <code>required uint32 file_id = 5;</code>
       * @return The fileId.
       */
      @java.lang.Override
      public int getFileId() {
        return instance.getFileId();
      }
      /**
       * <code>required uint32 file_id = 5;</code>
       * @param value The fileId to set.
       * @return This builder for chaining.
       */
      public Builder setFileId(int value) {
        copyOnWrite();
        instance.setFileId(value);
        return this;
      }
      /**
       * <code>required uint32 file_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileId() {
        copyOnWrite();
        instance.clearFileId();
        return this;
      }

      /**
       * <code>optional string file_name = 6;</code>
       * @return Whether the fileName field is set.
       */
      @java.lang.Override
      public boolean hasFileName() {
        return instance.hasFileName();
      }
      /**
       * <code>optional string file_name = 6;</code>
       * @return The fileName.
       */
      @java.lang.Override
      public java.lang.String getFileName() {
        return instance.getFileName();
      }
      /**
       * <code>optional string file_name = 6;</code>
       * @return The bytes for fileName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFileNameBytes() {
        return instance.getFileNameBytes();
      }
      /**
       * <code>optional string file_name = 6;</code>
       * @param value The fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileName(
          java.lang.String value) {
        copyOnWrite();
        instance.setFileName(value);
        return this;
      }
      /**
       * <code>optional string file_name = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileName() {
        copyOnWrite();
        instance.clearFileName();
        return this;
      }
      /**
       * <code>optional string file_name = 6;</code>
       * @param value The bytes for fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFileNameBytes(value);
        return this;
      }

      /**
       * <code>optional string file_extension = 7;</code>
       * @return Whether the fileExtension field is set.
       */
      @java.lang.Override
      public boolean hasFileExtension() {
        return instance.hasFileExtension();
      }
      /**
       * <code>optional string file_extension = 7;</code>
       * @return The fileExtension.
       */
      @java.lang.Override
      public java.lang.String getFileExtension() {
        return instance.getFileExtension();
      }
      /**
       * <code>optional string file_extension = 7;</code>
       * @return The bytes for fileExtension.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFileExtensionBytes() {
        return instance.getFileExtensionBytes();
      }
      /**
       * <code>optional string file_extension = 7;</code>
       * @param value The fileExtension to set.
       * @return This builder for chaining.
       */
      public Builder setFileExtension(
          java.lang.String value) {
        copyOnWrite();
        instance.setFileExtension(value);
        return this;
      }
      /**
       * <code>optional string file_extension = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileExtension() {
        copyOnWrite();
        instance.clearFileExtension();
        return this;
      }
      /**
       * <code>optional string file_extension = 7;</code>
       * @param value The bytes for fileExtension to set.
       * @return This builder for chaining.
       */
      public Builder setFileExtensionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFileExtensionBytes(value);
        return this;
      }

      /**
       * <code>optional string file_md5 = 8;</code>
       * @return Whether the fileMd5 field is set.
       */
      @java.lang.Override
      public boolean hasFileMd5() {
        return instance.hasFileMd5();
      }
      /**
       * <code>optional string file_md5 = 8;</code>
       * @return The fileMd5.
       */
      @java.lang.Override
      public java.lang.String getFileMd5() {
        return instance.getFileMd5();
      }
      /**
       * <code>optional string file_md5 = 8;</code>
       * @return The bytes for fileMd5.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFileMd5Bytes() {
        return instance.getFileMd5Bytes();
      }
      /**
       * <code>optional string file_md5 = 8;</code>
       * @param value The fileMd5 to set.
       * @return This builder for chaining.
       */
      public Builder setFileMd5(
          java.lang.String value) {
        copyOnWrite();
        instance.setFileMd5(value);
        return this;
      }
      /**
       * <code>optional string file_md5 = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileMd5() {
        copyOnWrite();
        instance.clearFileMd5();
        return this;
      }
      /**
       * <code>optional string file_md5 = 8;</code>
       * @param value The bytes for fileMd5 to set.
       * @return This builder for chaining.
       */
      public Builder setFileMd5Bytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFileMd5Bytes(value);
        return this;
      }

      /**
       * <code>optional uint32 file_verify_val = 9;</code>
       * @return Whether the fileVerifyVal field is set.
       */
      @java.lang.Override
      public boolean hasFileVerifyVal() {
        return instance.hasFileVerifyVal();
      }
      /**
       * <code>optional uint32 file_verify_val = 9;</code>
       * @return The fileVerifyVal.
       */
      @java.lang.Override
      public int getFileVerifyVal() {
        return instance.getFileVerifyVal();
      }
      /**
       * <code>optional uint32 file_verify_val = 9;</code>
       * @param value The fileVerifyVal to set.
       * @return This builder for chaining.
       */
      public Builder setFileVerifyVal(int value) {
        copyOnWrite();
        instance.setFileVerifyVal(value);
        return this;
      }
      /**
       * <code>optional uint32 file_verify_val = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileVerifyVal() {
        copyOnWrite();
        instance.clearFileVerifyVal();
        return this;
      }

      /**
       * <code>optional bool is_temp = 10;</code>
       * @return Whether the isTemp field is set.
       */
      @java.lang.Override
      public boolean hasIsTemp() {
        return instance.hasIsTemp();
      }
      /**
       * <code>optional bool is_temp = 10;</code>
       * @return The isTemp.
       */
      @java.lang.Override
      public boolean getIsTemp() {
        return instance.getIsTemp();
      }
      /**
       * <code>optional bool is_temp = 10;</code>
       * @param value The isTemp to set.
       * @return This builder for chaining.
       */
      public Builder setIsTemp(boolean value) {
        copyOnWrite();
        instance.setIsTemp(value);
        return this;
      }
      /**
       * <code>optional bool is_temp = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsTemp() {
        copyOnWrite();
        instance.clearIsTemp();
        return this;
      }

      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      @java.lang.Override
      public boolean hasExtraInfo() {
        return instance.hasExtraInfo();
      }
      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info getExtraInfo() {
        return instance.getExtraInfo();
      }
      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      public Builder setExtraInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info value) {
        copyOnWrite();
        instance.setExtraInfo(value);
        return this;
        }
      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      public Builder setExtraInfo(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info.Builder builderForValue) {
        copyOnWrite();
        instance.setExtraInfo(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      public Builder mergeExtraInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_extra_Info value) {
        copyOnWrite();
        instance.mergeExtraInfo(value);
        return this;
      }
      /**
       * <code>optional .file_extra_Info extra_Info = 11;</code>
       */
      public Builder clearExtraInfo() {  copyOnWrite();
        instance.clearExtraInfo();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:general_file_operation)
    }
    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.GeneralFileOperation.general_file_operation();
        }
        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(),
              "operateType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.SERVICE_OPERATE_TYPE.internalGetVerifier(),
              "fileType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.file_operation_type.internalGetVerifier(),
              "fileSize_",
              "fileId_",
              "fileName_",
              "fileExtension_",
              "fileMd5_",
              "fileVerifyVal_",
              "isTemp_",
              "extraInfo_",
            };
            java.lang.String info =
                "\u0001\u000b\u0000\u0001\u0001\u000b\u000b\u0000\u0000\u0005\u0001\u150c\u0000\u0002" +
                "\u150c\u0001\u0003\u150c\u0002\u0004\u150b\u0003\u0005\u150b\u0004\u0006\u1008\u0005" +
                "\u0007\u1008\u0006\b\u1008\u0007\t\u100b\b\n\u1007\t\u000b\u1009\n";
            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.GeneralFileOperation.general_file_operation> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.general_file_operation.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.general_file_operation>(
                        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:general_file_operation)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.GeneralFileOperation.general_file_operation DEFAULT_INSTANCE;
    static {
      general_file_operation defaultInstance = new general_file_operation();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        general_file_operation.class, defaultInstance);
    }

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

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
