All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.protobuf.DescriptorProtos Maven / Gradle / Ivy

Go to download

Kotlin lite Protocol Buffers library. Protocol Buffers are a way of encoding structured data in an efficient yet extensible format.

There is a newer version: 4.29.0-RC3
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: google/protobuf/descriptor.proto
// Protobuf Java Version: 4.28.2

package com.google.protobuf;

public final class DescriptorProtos {
  private DescriptorProtos() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code google.protobuf.Edition}
   */
  public enum Edition
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * EDITION_UNKNOWN = 0;
     */
    EDITION_UNKNOWN(0),
    /**
     * EDITION_LEGACY = 900;
     */
    EDITION_LEGACY(900),
    /**
     * EDITION_PROTO2 = 998;
     */
    EDITION_PROTO2(998),
    /**
     * EDITION_PROTO3 = 999;
     */
    EDITION_PROTO3(999),
    /**
     * EDITION_2023 = 1000;
     */
    EDITION_2023(1000),
    /**
     * EDITION_2024 = 1001;
     */
    EDITION_2024(1001),
    /**
     * EDITION_1_TEST_ONLY = 1;
     */
    EDITION_1_TEST_ONLY(1),
    /**
     * EDITION_2_TEST_ONLY = 2;
     */
    EDITION_2_TEST_ONLY(2),
    /**
     * EDITION_99997_TEST_ONLY = 99997;
     */
    EDITION_99997_TEST_ONLY(99997),
    /**
     * EDITION_99998_TEST_ONLY = 99998;
     */
    EDITION_99998_TEST_ONLY(99998),
    /**
     * EDITION_99999_TEST_ONLY = 99999;
     */
    EDITION_99999_TEST_ONLY(99999),
    /**
     * EDITION_MAX = 2147483647;
     */
    EDITION_MAX(2147483647),
    ;

    /**
     * EDITION_UNKNOWN = 0;
     */
    public static final int EDITION_UNKNOWN_VALUE = 0;
    /**
     * EDITION_LEGACY = 900;
     */
    public static final int EDITION_LEGACY_VALUE = 900;
    /**
     * EDITION_PROTO2 = 998;
     */
    public static final int EDITION_PROTO2_VALUE = 998;
    /**
     * EDITION_PROTO3 = 999;
     */
    public static final int EDITION_PROTO3_VALUE = 999;
    /**
     * EDITION_2023 = 1000;
     */
    public static final int EDITION_2023_VALUE = 1000;
    /**
     * EDITION_2024 = 1001;
     */
    public static final int EDITION_2024_VALUE = 1001;
    /**
     * EDITION_1_TEST_ONLY = 1;
     */
    public static final int EDITION_1_TEST_ONLY_VALUE = 1;
    /**
     * EDITION_2_TEST_ONLY = 2;
     */
    public static final int EDITION_2_TEST_ONLY_VALUE = 2;
    /**
     * EDITION_99997_TEST_ONLY = 99997;
     */
    public static final int EDITION_99997_TEST_ONLY_VALUE = 99997;
    /**
     * EDITION_99998_TEST_ONLY = 99998;
     */
    public static final int EDITION_99998_TEST_ONLY_VALUE = 99998;
    /**
     * EDITION_99999_TEST_ONLY = 99999;
     */
    public static final int EDITION_99999_TEST_ONLY_VALUE = 99999;
    /**
     * EDITION_MAX = 2147483647;
     */
    public static final int EDITION_MAX_VALUE = 2147483647;


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

    public static Edition forNumber(int value) {
      switch (value) {
        case 0: return EDITION_UNKNOWN;
        case 900: return EDITION_LEGACY;
        case 998: return EDITION_PROTO2;
        case 999: return EDITION_PROTO3;
        case 1000: return EDITION_2023;
        case 1001: return EDITION_2024;
        case 1: return EDITION_1_TEST_ONLY;
        case 2: return EDITION_2_TEST_ONLY;
        case 99997: return EDITION_99997_TEST_ONLY;
        case 99998: return EDITION_99998_TEST_ONLY;
        case 99999: return EDITION_99999_TEST_ONLY;
        case 2147483647: return EDITION_MAX;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:google.protobuf.Edition)
  }

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

    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    java.util.List 
        getFileList();
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index);
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    int getFileCount();
  }
  /**
   * Protobuf type {@code google.protobuf.FileDescriptorSet}
   */
  public  static final class FileDescriptorSet extends
      com.google.protobuf.GeneratedMessageLite<
          FileDescriptorSet, FileDescriptorSet.Builder> implements
      // @@protoc_insertion_point(message_implements:google.protobuf.FileDescriptorSet)
      FileDescriptorSetOrBuilder {
    private FileDescriptorSet() {
      file_ = emptyProtobufList();
    }
    public static final int FILE_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList file_;
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    @java.lang.Override
    public java.util.List getFileList() {
      return file_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    public java.util.List 
        getFileOrBuilderList() {
      return file_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    @java.lang.Override
    public int getFileCount() {
      return file_.size();
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index) {
      return file_.get(index);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getFileOrBuilder(
        int index) {
      return file_.get(index);
    }
    private void ensureFileIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = file_;
      if (!tmp.isModifiable()) {
        file_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void setFile(
        int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
      value.getClass();
  ensureFileIsMutable();
      file_.set(index, value);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void addFile(com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
      value.getClass();
  ensureFileIsMutable();
      file_.add(value);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void addFile(
        int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
      value.getClass();
  ensureFileIsMutable();
      file_.add(index, value);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void addAllFile(
        java.lang.Iterable values) {
      ensureFileIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, file_);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void clearFile() {
      file_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
     */
    private void removeFile(int index) {
      ensureFileIsMutable();
      file_.remove(index);
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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(com.google.protobuf.DescriptorProtos.FileDescriptorSet prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code google.protobuf.FileDescriptorSet}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.google.protobuf.DescriptorProtos.FileDescriptorSet, Builder> implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.FileDescriptorSet)
        com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder {
      // Construct using com.google.protobuf.DescriptorProtos.FileDescriptorSet.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      @java.lang.Override
      public java.util.List getFileList() {
        return java.util.Collections.unmodifiableList(
            instance.getFileList());
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      @java.lang.Override
      public int getFileCount() {
        return instance.getFileCount();
      }/**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index) {
        return instance.getFile(index);
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder setFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        copyOnWrite();
        instance.setFile(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder setFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setFile(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder addFile(com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        copyOnWrite();
        instance.addFile(value);
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder addFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        copyOnWrite();
        instance.addFile(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder addFile(
          com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addFile(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder addFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addFile(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder addAllFile(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllFile(values);
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder clearFile() {
        copyOnWrite();
        instance.clearFile();
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto file = 1 [json_name = "file"];
       */
      public Builder removeFile(int index) {
        copyOnWrite();
        instance.removeFile(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.FileDescriptorSet)
    }
    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 com.google.protobuf.DescriptorProtos.FileDescriptorSet();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "file_",
              com.google.protobuf.DescriptorProtos.FileDescriptorProto.class,
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0001\u0001\u041b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser parser = PARSER;
          if (parser == null) {
            synchronized (com.google.protobuf.DescriptorProtos.FileDescriptorSet.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser(
                        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:google.protobuf.FileDescriptorSet)
    private static final com.google.protobuf.DescriptorProtos.FileDescriptorSet DEFAULT_INSTANCE;
    static {
      FileDescriptorSet defaultInstance = new FileDescriptorSet();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FileDescriptorSet.class, defaultInstance);
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorSet getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser PARSER;

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

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

    /**
     * optional string name = 1 [json_name = "name"];
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional string package = 2 [json_name = "package"];
     * @return Whether the package field is set.
     */
    boolean hasPackage();
    /**
     * optional string package = 2 [json_name = "package"];
     * @return The package.
     */
    java.lang.String getPackage();
    /**
     * optional string package = 2 [json_name = "package"];
     * @return The bytes for package.
     */
    com.google.protobuf.ByteString
        getPackageBytes();

    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @return A list containing the dependency.
     */
    java.util.List
        getDependencyList();
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @return The count of dependency.
     */
    int getDependencyCount();
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param index The index of the element to return.
     * @return The dependency at the given index.
     */
    java.lang.String getDependency(int index);
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param index The index of the element to return.
     * @return The dependency at the given index.
     */
    com.google.protobuf.ByteString
        getDependencyBytes(int index);

    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @return A list containing the publicDependency.
     */
    java.util.List getPublicDependencyList();
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @return The count of publicDependency.
     */
    int getPublicDependencyCount();
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @param index The index of the element to return.
     * @return The publicDependency at the given index.
     */
    int getPublicDependency(int index);

    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @return A list containing the weakDependency.
     */
    java.util.List getWeakDependencyList();
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @return The count of weakDependency.
     */
    int getWeakDependencyCount();
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @param index The index of the element to return.
     * @return The weakDependency at the given index.
     */
    int getWeakDependency(int index);

    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    java.util.List 
        getMessageTypeList();
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index);
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    int getMessageTypeCount();

    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    java.util.List 
        getEnumTypeList();
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index);
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    int getEnumTypeCount();

    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    java.util.List 
        getServiceList();
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index);
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    int getServiceCount();

    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    java.util.List 
        getExtensionList();
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index);
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    int getExtensionCount();

    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     * @return Whether the options field is set.
     */
    boolean hasOptions();
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     * @return The options.
     */
    com.google.protobuf.DescriptorProtos.FileOptions getOptions();

    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     * @return Whether the sourceCodeInfo field is set.
     */
    boolean hasSourceCodeInfo();
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     * @return The sourceCodeInfo.
     */
    com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo();

    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return Whether the syntax field is set.
     */
    boolean hasSyntax();
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return The syntax.
     */
    java.lang.String getSyntax();
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return The bytes for syntax.
     */
    com.google.protobuf.ByteString
        getSyntaxBytes();

    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     * @return Whether the edition field is set.
     */
    boolean hasEdition();
    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     * @return The edition.
     */
    com.google.protobuf.DescriptorProtos.Edition getEdition();
  }
  /**
   * Protobuf type {@code google.protobuf.FileDescriptorProto}
   */
  public  static final class FileDescriptorProto extends
      com.google.protobuf.GeneratedMessageLite<
          FileDescriptorProto, FileDescriptorProto.Builder> implements
      // @@protoc_insertion_point(message_implements:google.protobuf.FileDescriptorProto)
      FileDescriptorProtoOrBuilder {
    private FileDescriptorProto() {
      name_ = "";
      package_ = "";
      dependency_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      publicDependency_ = emptyIntList();
      weakDependency_ = emptyIntList();
      messageType_ = emptyProtobufList();
      enumType_ = emptyProtobufList();
      service_ = emptyProtobufList();
      extension_ = emptyProtobufList();
      syntax_ = "";
    }
    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.String name_;
    /**
     * optional string name = 1 [json_name = "name"];
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      return name_;
    }
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(name_);
    }
    /**
     * optional string name = 1 [json_name = "name"];
     * @param value The name to set.
     */
    private void setName(
        java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      name_ = value;
    }
    /**
     * optional string name = 1 [json_name = "name"];
     */
    private void clearName() {
      bitField0_ = (bitField0_ & ~0x00000001);
      name_ = getDefaultInstance().getName();
    }
    /**
     * optional string name = 1 [json_name = "name"];
     * @param value The bytes for name to set.
     */
    private void setNameBytes(
        com.google.protobuf.ByteString value) {
      name_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static final int PACKAGE_FIELD_NUMBER = 2;
    private java.lang.String package_;
    /**
     * optional string package = 2 [json_name = "package"];
     * @return Whether the package field is set.
     */
    @java.lang.Override
    public boolean hasPackage() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string package = 2 [json_name = "package"];
     * @return The package.
     */
    @java.lang.Override
    public java.lang.String getPackage() {
      return package_;
    }
    /**
     * optional string package = 2 [json_name = "package"];
     * @return The bytes for package.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPackageBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(package_);
    }
    /**
     * optional string package = 2 [json_name = "package"];
     * @param value The package to set.
     */
    private void setPackage(
        java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      package_ = value;
    }
    /**
     * optional string package = 2 [json_name = "package"];
     */
    private void clearPackage() {
      bitField0_ = (bitField0_ & ~0x00000002);
      package_ = getDefaultInstance().getPackage();
    }
    /**
     * optional string package = 2 [json_name = "package"];
     * @param value The bytes for package to set.
     */
    private void setPackageBytes(
        com.google.protobuf.ByteString value) {
      package_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }

    public static final int DEPENDENCY_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList dependency_;
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @return A list containing the dependency.
     */
    @java.lang.Override
    public java.util.List getDependencyList() {
      return dependency_;
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @return The count of dependency.
     */
    @java.lang.Override
    public int getDependencyCount() {
      return dependency_.size();
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param index The index of the element to return.
     * @return The dependency at the given index.
     */
    @java.lang.Override
    public java.lang.String getDependency(int index) {
      return dependency_.get(index);
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param index The index of the value to return.
     * @return The bytes of the dependency at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDependencyBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          dependency_.get(index));
    }
    private void ensureDependencyIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp =
          dependency_;  if (!tmp.isModifiable()) {
        dependency_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param index The index to set the value at.
     * @param value The dependency to set.
     */
    private void setDependency(
        int index, java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  ensureDependencyIsMutable();
      dependency_.set(index, value);
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param value The dependency to add.
     */
    private void addDependency(
        java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  ensureDependencyIsMutable();
      dependency_.add(value);
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param values The dependency to add.
     */
    private void addAllDependency(
        java.lang.Iterable values) {
      ensureDependencyIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, dependency_);
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     */
    private void clearDependency() {
      dependency_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * repeated string dependency = 3 [json_name = "dependency"];
     * @param value The bytes of the dependency to add.
     */
    private void addDependencyBytes(
        com.google.protobuf.ByteString value) {
      ensureDependencyIsMutable();
      dependency_.add(value.toStringUtf8());
    }

    public static final int PUBLIC_DEPENDENCY_FIELD_NUMBER = 10;
    private com.google.protobuf.Internal.IntList publicDependency_;
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @return A list containing the publicDependency.
     */
    @java.lang.Override
    public java.util.List
        getPublicDependencyList() {
      return publicDependency_;
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @return The count of publicDependency.
     */
    @java.lang.Override
    public int getPublicDependencyCount() {
      return publicDependency_.size();
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @param index The index of the element to return.
     * @return The publicDependency at the given index.
     */
    @java.lang.Override
    public int getPublicDependency(int index) {
      return publicDependency_.getInt(index);
    }
    private void ensurePublicDependencyIsMutable() {
      com.google.protobuf.Internal.IntList tmp = publicDependency_;
      if (!tmp.isModifiable()) {
        publicDependency_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @param index The index to set the value at.
     * @param value The publicDependency to set.
     */
    private void setPublicDependency(
        int index, int value) {
      ensurePublicDependencyIsMutable();
      publicDependency_.setInt(index, value);
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @param value The publicDependency to add.
     */
    private void addPublicDependency(int value) {
      ensurePublicDependencyIsMutable();
      publicDependency_.addInt(value);
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     * @param values The publicDependency to add.
     */
    private void addAllPublicDependency(
        java.lang.Iterable values) {
      ensurePublicDependencyIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, publicDependency_);
    }
    /**
     * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
     */
    private void clearPublicDependency() {
      publicDependency_ = emptyIntList();
    }

    public static final int WEAK_DEPENDENCY_FIELD_NUMBER = 11;
    private com.google.protobuf.Internal.IntList weakDependency_;
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @return A list containing the weakDependency.
     */
    @java.lang.Override
    public java.util.List
        getWeakDependencyList() {
      return weakDependency_;
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @return The count of weakDependency.
     */
    @java.lang.Override
    public int getWeakDependencyCount() {
      return weakDependency_.size();
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @param index The index of the element to return.
     * @return The weakDependency at the given index.
     */
    @java.lang.Override
    public int getWeakDependency(int index) {
      return weakDependency_.getInt(index);
    }
    private void ensureWeakDependencyIsMutable() {
      com.google.protobuf.Internal.IntList tmp = weakDependency_;
      if (!tmp.isModifiable()) {
        weakDependency_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @param index The index to set the value at.
     * @param value The weakDependency to set.
     */
    private void setWeakDependency(
        int index, int value) {
      ensureWeakDependencyIsMutable();
      weakDependency_.setInt(index, value);
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @param value The weakDependency to add.
     */
    private void addWeakDependency(int value) {
      ensureWeakDependencyIsMutable();
      weakDependency_.addInt(value);
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     * @param values The weakDependency to add.
     */
    private void addAllWeakDependency(
        java.lang.Iterable values) {
      ensureWeakDependencyIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, weakDependency_);
    }
    /**
     * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
     */
    private void clearWeakDependency() {
      weakDependency_ = emptyIntList();
    }

    public static final int MESSAGE_TYPE_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList messageType_;
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    @java.lang.Override
    public java.util.List getMessageTypeList() {
      return messageType_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    public java.util.List 
        getMessageTypeOrBuilderList() {
      return messageType_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    @java.lang.Override
    public int getMessageTypeCount() {
      return messageType_.size();
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index) {
      return messageType_.get(index);
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getMessageTypeOrBuilder(
        int index) {
      return messageType_.get(index);
    }
    private void ensureMessageTypeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = messageType_;
      if (!tmp.isModifiable()) {
        messageType_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void setMessageType(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureMessageTypeIsMutable();
      messageType_.set(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void addMessageType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureMessageTypeIsMutable();
      messageType_.add(value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void addMessageType(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureMessageTypeIsMutable();
      messageType_.add(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void addAllMessageType(
        java.lang.Iterable values) {
      ensureMessageTypeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, messageType_);
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void clearMessageType() {
      messageType_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
     */
    private void removeMessageType(int index) {
      ensureMessageTypeIsMutable();
      messageType_.remove(index);
    }

    public static final int ENUM_TYPE_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.ProtobufList enumType_;
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    @java.lang.Override
    public java.util.List getEnumTypeList() {
      return enumType_;
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    public java.util.List 
        getEnumTypeOrBuilderList() {
      return enumType_;
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    @java.lang.Override
    public int getEnumTypeCount() {
      return enumType_.size();
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
      return enumType_.get(index);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
        int index) {
      return enumType_.get(index);
    }
    private void ensureEnumTypeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = enumType_;
      if (!tmp.isModifiable()) {
        enumType_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void setEnumType(
        int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.set(index, value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.add(value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void addEnumType(
        int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.add(index, value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void addAllEnumType(
        java.lang.Iterable values) {
      ensureEnumTypeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, enumType_);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void clearEnumType() {
      enumType_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
     */
    private void removeEnumType(int index) {
      ensureEnumTypeIsMutable();
      enumType_.remove(index);
    }

    public static final int SERVICE_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.ProtobufList service_;
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    @java.lang.Override
    public java.util.List getServiceList() {
      return service_;
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    public java.util.List 
        getServiceOrBuilderList() {
      return service_;
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    @java.lang.Override
    public int getServiceCount() {
      return service_.size();
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index) {
      return service_.get(index);
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    public com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder getServiceOrBuilder(
        int index) {
      return service_.get(index);
    }
    private void ensureServiceIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = service_;
      if (!tmp.isModifiable()) {
        service_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void setService(
        int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
      value.getClass();
  ensureServiceIsMutable();
      service_.set(index, value);
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void addService(com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
      value.getClass();
  ensureServiceIsMutable();
      service_.add(value);
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void addService(
        int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
      value.getClass();
  ensureServiceIsMutable();
      service_.add(index, value);
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void addAllService(
        java.lang.Iterable values) {
      ensureServiceIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, service_);
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void clearService() {
      service_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
     */
    private void removeService(int index) {
      ensureServiceIsMutable();
      service_.remove(index);
    }

    public static final int EXTENSION_FIELD_NUMBER = 7;
    private com.google.protobuf.Internal.ProtobufList extension_;
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    @java.lang.Override
    public java.util.List getExtensionList() {
      return extension_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    public java.util.List 
        getExtensionOrBuilderList() {
      return extension_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    @java.lang.Override
    public int getExtensionCount() {
      return extension_.size();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
      return extension_.get(index);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
        int index) {
      return extension_.get(index);
    }
    private void ensureExtensionIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = extension_;
      if (!tmp.isModifiable()) {
        extension_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void setExtension(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.set(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.add(value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void addExtension(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.add(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void addAllExtension(
        java.lang.Iterable values) {
      ensureExtensionIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, extension_);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void clearExtension() {
      extension_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
     */
    private void removeExtension(int index) {
      ensureExtensionIsMutable();
      extension_.remove(index);
    }

    public static final int OPTIONS_FIELD_NUMBER = 8;
    private com.google.protobuf.DescriptorProtos.FileOptions options_;
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     */
    @java.lang.Override
    public boolean hasOptions() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileOptions getOptions() {
      return options_ == null ? com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance() : options_;
    }
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     */
    private void setOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
      value.getClass();
  options_ = value;
      bitField0_ |= 0x00000004;
      }
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
      value.getClass();
  if (options_ != null &&
          options_ != com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance()) {
        options_ =
          com.google.protobuf.DescriptorProtos.FileOptions.newBuilder(options_).mergeFrom(value).buildPartial();
      } else {
        options_ = value;
      }
      bitField0_ |= 0x00000004;
    }
    /**
     * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
     */
    private void clearOptions() {  options_ = null;
      bitField0_ = (bitField0_ & ~0x00000004);
    }

    public static final int SOURCE_CODE_INFO_FIELD_NUMBER = 9;
    private com.google.protobuf.DescriptorProtos.SourceCodeInfo sourceCodeInfo_;
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     */
    @java.lang.Override
    public boolean hasSourceCodeInfo() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo() {
      return sourceCodeInfo_ == null ? com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance() : sourceCodeInfo_;
    }
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     */
    private void setSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
      value.getClass();
  sourceCodeInfo_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
      value.getClass();
  if (sourceCodeInfo_ != null &&
          sourceCodeInfo_ != com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance()) {
        sourceCodeInfo_ =
          com.google.protobuf.DescriptorProtos.SourceCodeInfo.newBuilder(sourceCodeInfo_).mergeFrom(value).buildPartial();
      } else {
        sourceCodeInfo_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
     */
    private void clearSourceCodeInfo() {  sourceCodeInfo_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int SYNTAX_FIELD_NUMBER = 12;
    private java.lang.String syntax_;
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return Whether the syntax field is set.
     */
    @java.lang.Override
    public boolean hasSyntax() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return The syntax.
     */
    @java.lang.Override
    public java.lang.String getSyntax() {
      return syntax_;
    }
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @return The bytes for syntax.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSyntaxBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(syntax_);
    }
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @param value The syntax to set.
     */
    private void setSyntax(
        java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  bitField0_ |= 0x00000010;
      syntax_ = value;
    }
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     */
    private void clearSyntax() {
      bitField0_ = (bitField0_ & ~0x00000010);
      syntax_ = getDefaultInstance().getSyntax();
    }
    /**
     * optional string syntax = 12 [json_name = "syntax"];
     * @param value The bytes for syntax to set.
     */
    private void setSyntaxBytes(
        com.google.protobuf.ByteString value) {
      syntax_ = value.toStringUtf8();
      bitField0_ |= 0x00000010;
    }

    public static final int EDITION_FIELD_NUMBER = 14;
    private int edition_;
    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     * @return Whether the edition field is set.
     */
    @java.lang.Override
    public boolean hasEdition() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     * @return The edition.
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.Edition getEdition() {
      com.google.protobuf.DescriptorProtos.Edition result = com.google.protobuf.DescriptorProtos.Edition.forNumber(edition_);
      return result == null ? com.google.protobuf.DescriptorProtos.Edition.EDITION_UNKNOWN : result;
    }
    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     * @param value The edition to set.
     */
    private void setEdition(com.google.protobuf.DescriptorProtos.Edition value) {
      edition_ = value.getNumber();
      bitField0_ |= 0x00000020;
    }
    /**
     * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
     */
    private void clearEdition() {
      bitField0_ = (bitField0_ & ~0x00000020);
      edition_ = 0;
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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(com.google.protobuf.DescriptorProtos.FileDescriptorProto prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code google.protobuf.FileDescriptorProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.google.protobuf.DescriptorProtos.FileDescriptorProto, Builder> implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.FileDescriptorProto)
        com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder {
      // Construct using com.google.protobuf.DescriptorProtos.FileDescriptorProto.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * optional string name = 1 [json_name = "name"];
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return instance.hasName();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return instance.getName();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return instance.getNameBytes();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        copyOnWrite();
        instance.setName(value);
        return this;
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return This builder for chaining.
       */
      public Builder clearName() {
        copyOnWrite();
        instance.clearName();
        return this;
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @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;
      }

      /**
       * optional string package = 2 [json_name = "package"];
       * @return Whether the package field is set.
       */
      @java.lang.Override
      public boolean hasPackage() {
        return instance.hasPackage();
      }
      /**
       * optional string package = 2 [json_name = "package"];
       * @return The package.
       */
      @java.lang.Override
      public java.lang.String getPackage() {
        return instance.getPackage();
      }
      /**
       * optional string package = 2 [json_name = "package"];
       * @return The bytes for package.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPackageBytes() {
        return instance.getPackageBytes();
      }
      /**
       * optional string package = 2 [json_name = "package"];
       * @param value The package to set.
       * @return This builder for chaining.
       */
      public Builder setPackage(
          java.lang.String value) {
        copyOnWrite();
        instance.setPackage(value);
        return this;
      }
      /**
       * optional string package = 2 [json_name = "package"];
       * @return This builder for chaining.
       */
      public Builder clearPackage() {
        copyOnWrite();
        instance.clearPackage();
        return this;
      }
      /**
       * optional string package = 2 [json_name = "package"];
       * @param value The bytes for package to set.
       * @return This builder for chaining.
       */
      public Builder setPackageBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPackageBytes(value);
        return this;
      }

      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @return A list containing the dependency.
       */
      @java.lang.Override
      public java.util.List
          getDependencyList() {
        return java.util.Collections.unmodifiableList(
            instance.getDependencyList());
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @return The count of dependency.
       */
      @java.lang.Override
      public int getDependencyCount() {
        return instance.getDependencyCount();
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param index The index of the element to return.
       * @return The dependency at the given index.
       */
      @java.lang.Override
      public java.lang.String getDependency(int index) {
        return instance.getDependency(index);
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param index The index of the value to return.
       * @return The bytes of the dependency at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDependencyBytes(int index) {
        return instance.getDependencyBytes(index);
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param index The index to set the value at.
       * @param value The dependency to set.
       * @return This builder for chaining.
       */
      public Builder setDependency(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setDependency(index, value);
        return this;
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param value The dependency to add.
       * @return This builder for chaining.
       */
      public Builder addDependency(
          java.lang.String value) {
        copyOnWrite();
        instance.addDependency(value);
        return this;
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param values The dependency to add.
       * @return This builder for chaining.
       */
      public Builder addAllDependency(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllDependency(values);
        return this;
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @return This builder for chaining.
       */
      public Builder clearDependency() {
        copyOnWrite();
        instance.clearDependency();
        return this;
      }
      /**
       * repeated string dependency = 3 [json_name = "dependency"];
       * @param value The bytes of the dependency to add.
       * @return This builder for chaining.
       */
      public Builder addDependencyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addDependencyBytes(value);
        return this;
      }

      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @return A list containing the publicDependency.
       */
      @java.lang.Override
      public java.util.List
          getPublicDependencyList() {
        return java.util.Collections.unmodifiableList(
            instance.getPublicDependencyList());
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @return The count of publicDependency.
       */
      @java.lang.Override
      public int getPublicDependencyCount() {
        return instance.getPublicDependencyCount();
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @param index The index of the element to return.
       * @return The publicDependency at the given index.
       */
      @java.lang.Override
      public int getPublicDependency(int index) {
        return instance.getPublicDependency(index);
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @param value The publicDependency to set.
       * @return This builder for chaining.
       */
      public Builder setPublicDependency(
          int index, int value) {
        copyOnWrite();
        instance.setPublicDependency(index, value);
        return this;
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @param value The publicDependency to add.
       * @return This builder for chaining.
       */
      public Builder addPublicDependency(int value) {
        copyOnWrite();
        instance.addPublicDependency(value);
        return this;
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @param values The publicDependency to add.
       * @return This builder for chaining.
       */
      public Builder addAllPublicDependency(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllPublicDependency(values);
        return this;
      }
      /**
       * repeated int32 public_dependency = 10 [json_name = "publicDependency"];
       * @return This builder for chaining.
       */
      public Builder clearPublicDependency() {
        copyOnWrite();
        instance.clearPublicDependency();
        return this;
      }

      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @return A list containing the weakDependency.
       */
      @java.lang.Override
      public java.util.List
          getWeakDependencyList() {
        return java.util.Collections.unmodifiableList(
            instance.getWeakDependencyList());
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @return The count of weakDependency.
       */
      @java.lang.Override
      public int getWeakDependencyCount() {
        return instance.getWeakDependencyCount();
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @param index The index of the element to return.
       * @return The weakDependency at the given index.
       */
      @java.lang.Override
      public int getWeakDependency(int index) {
        return instance.getWeakDependency(index);
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @param value The weakDependency to set.
       * @return This builder for chaining.
       */
      public Builder setWeakDependency(
          int index, int value) {
        copyOnWrite();
        instance.setWeakDependency(index, value);
        return this;
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @param value The weakDependency to add.
       * @return This builder for chaining.
       */
      public Builder addWeakDependency(int value) {
        copyOnWrite();
        instance.addWeakDependency(value);
        return this;
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @param values The weakDependency to add.
       * @return This builder for chaining.
       */
      public Builder addAllWeakDependency(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllWeakDependency(values);
        return this;
      }
      /**
       * repeated int32 weak_dependency = 11 [json_name = "weakDependency"];
       * @return This builder for chaining.
       */
      public Builder clearWeakDependency() {
        copyOnWrite();
        instance.clearWeakDependency();
        return this;
      }

      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      @java.lang.Override
      public java.util.List getMessageTypeList() {
        return java.util.Collections.unmodifiableList(
            instance.getMessageTypeList());
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      @java.lang.Override
      public int getMessageTypeCount() {
        return instance.getMessageTypeCount();
      }/**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index) {
        return instance.getMessageType(index);
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder setMessageType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.setMessageType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder setMessageType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setMessageType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder addMessageType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.addMessageType(value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder addMessageType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.addMessageType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder addMessageType(
          com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addMessageType(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder addMessageType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addMessageType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder addAllMessageType(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllMessageType(values);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder clearMessageType() {
        copyOnWrite();
        instance.clearMessageType();
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto message_type = 4 [json_name = "messageType"];
       */
      public Builder removeMessageType(int index) {
        copyOnWrite();
        instance.removeMessageType(index);
        return this;
      }

      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      @java.lang.Override
      public java.util.List getEnumTypeList() {
        return java.util.Collections.unmodifiableList(
            instance.getEnumTypeList());
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      @java.lang.Override
      public int getEnumTypeCount() {
        return instance.getEnumTypeCount();
      }/**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
        return instance.getEnumType(index);
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder setEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.setEnumType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder setEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setEnumType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.addEnumType(value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder addEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.addEnumType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder addEnumType(
          com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addEnumType(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder addEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addEnumType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder addAllEnumType(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllEnumType(values);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder clearEnumType() {
        copyOnWrite();
        instance.clearEnumType();
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 5 [json_name = "enumType"];
       */
      public Builder removeEnumType(int index) {
        copyOnWrite();
        instance.removeEnumType(index);
        return this;
      }

      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      @java.lang.Override
      public java.util.List getServiceList() {
        return java.util.Collections.unmodifiableList(
            instance.getServiceList());
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      @java.lang.Override
      public int getServiceCount() {
        return instance.getServiceCount();
      }/**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index) {
        return instance.getService(index);
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder setService(
          int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
        copyOnWrite();
        instance.setService(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder setService(
          int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setService(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder addService(com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
        copyOnWrite();
        instance.addService(value);
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder addService(
          int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
        copyOnWrite();
        instance.addService(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder addService(
          com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addService(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder addService(
          int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addService(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder addAllService(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllService(values);
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder clearService() {
        copyOnWrite();
        instance.clearService();
        return this;
      }
      /**
       * repeated .google.protobuf.ServiceDescriptorProto service = 6 [json_name = "service"];
       */
      public Builder removeService(int index) {
        copyOnWrite();
        instance.removeService(index);
        return this;
      }

      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      @java.lang.Override
      public java.util.List getExtensionList() {
        return java.util.Collections.unmodifiableList(
            instance.getExtensionList());
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      @java.lang.Override
      public int getExtensionCount() {
        return instance.getExtensionCount();
      }/**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
        return instance.getExtension(index);
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder setExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.setExtension(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder setExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setExtension(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addExtension(value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder addExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addExtension(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder addExtension(
          com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addExtension(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder addExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addExtension(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder addAllExtension(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllExtension(values);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder clearExtension() {
        copyOnWrite();
        instance.clearExtension();
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 7 [json_name = "extension"];
       */
      public Builder removeExtension(int index) {
        copyOnWrite();
        instance.removeExtension(index);
        return this;
      }

      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      @java.lang.Override
      public boolean hasOptions() {
        return instance.hasOptions();
      }
      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FileOptions getOptions() {
        return instance.getOptions();
      }
      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      public Builder setOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
        copyOnWrite();
        instance.setOptions(value);
        return this;
        }
      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      public Builder setOptions(
          com.google.protobuf.DescriptorProtos.FileOptions.Builder builderForValue) {
        copyOnWrite();
        instance.setOptions(builderForValue.build());
        return this;
      }
      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      public Builder mergeOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
        copyOnWrite();
        instance.mergeOptions(value);
        return this;
      }
      /**
       * optional .google.protobuf.FileOptions options = 8 [json_name = "options"];
       */
      public Builder clearOptions() {  copyOnWrite();
        instance.clearOptions();
        return this;
      }

      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      @java.lang.Override
      public boolean hasSourceCodeInfo() {
        return instance.hasSourceCodeInfo();
      }
      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo() {
        return instance.getSourceCodeInfo();
      }
      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      public Builder setSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
        copyOnWrite();
        instance.setSourceCodeInfo(value);
        return this;
        }
      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      public Builder setSourceCodeInfo(
          com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setSourceCodeInfo(builderForValue.build());
        return this;
      }
      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      public Builder mergeSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
        copyOnWrite();
        instance.mergeSourceCodeInfo(value);
        return this;
      }
      /**
       * optional .google.protobuf.SourceCodeInfo source_code_info = 9 [json_name = "sourceCodeInfo"];
       */
      public Builder clearSourceCodeInfo() {  copyOnWrite();
        instance.clearSourceCodeInfo();
        return this;
      }

      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @return Whether the syntax field is set.
       */
      @java.lang.Override
      public boolean hasSyntax() {
        return instance.hasSyntax();
      }
      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @return The syntax.
       */
      @java.lang.Override
      public java.lang.String getSyntax() {
        return instance.getSyntax();
      }
      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @return The bytes for syntax.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSyntaxBytes() {
        return instance.getSyntaxBytes();
      }
      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @param value The syntax to set.
       * @return This builder for chaining.
       */
      public Builder setSyntax(
          java.lang.String value) {
        copyOnWrite();
        instance.setSyntax(value);
        return this;
      }
      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @return This builder for chaining.
       */
      public Builder clearSyntax() {
        copyOnWrite();
        instance.clearSyntax();
        return this;
      }
      /**
       * optional string syntax = 12 [json_name = "syntax"];
       * @param value The bytes for syntax to set.
       * @return This builder for chaining.
       */
      public Builder setSyntaxBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSyntaxBytes(value);
        return this;
      }

      /**
       * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
       * @return Whether the edition field is set.
       */
      @java.lang.Override
      public boolean hasEdition() {
        return instance.hasEdition();
      }
      /**
       * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
       * @return The edition.
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.Edition getEdition() {
        return instance.getEdition();
      }
      /**
       * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
       * @param value The enum numeric value on the wire for edition to set.
       * @return This builder for chaining.
       */
      public Builder setEdition(com.google.protobuf.DescriptorProtos.Edition value) {
        copyOnWrite();
        instance.setEdition(value);
        return this;
      }
      /**
       * optional .google.protobuf.Edition edition = 14 [json_name = "edition"];
       * @return This builder for chaining.
       */
      public Builder clearEdition() {
        copyOnWrite();
        instance.clearEdition();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.FileDescriptorProto)
    }
    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 com.google.protobuf.DescriptorProtos.FileDescriptorProto();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "name_",
              "package_",
              "dependency_",
              "messageType_",
              com.google.protobuf.DescriptorProtos.DescriptorProto.class,
              "enumType_",
              com.google.protobuf.DescriptorProtos.EnumDescriptorProto.class,
              "service_",
              com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.class,
              "extension_",
              com.google.protobuf.DescriptorProtos.FieldDescriptorProto.class,
              "options_",
              "sourceCodeInfo_",
              "publicDependency_",
              "weakDependency_",
              "syntax_",
              "edition_",
              com.google.protobuf.DescriptorProtos.Edition.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\r\u0000\u0001\u0001\u000e\r\u0000\u0007\u0005\u0001\u1008\u0000\u0002\u1008" +
                "\u0001\u0003\u001a\u0004\u041b\u0005\u041b\u0006\u041b\u0007\u041b\b\u1409\u0002" +
                "\t\u1009\u0003\n\u0016\u000b\u0016\f\u1008\u0004\u000e\u180c\u0005";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser parser = PARSER;
          if (parser == null) {
            synchronized (com.google.protobuf.DescriptorProtos.FileDescriptorProto.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser(
                        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:google.protobuf.FileDescriptorProto)
    private static final com.google.protobuf.DescriptorProtos.FileDescriptorProto DEFAULT_INSTANCE;
    static {
      FileDescriptorProto defaultInstance = new FileDescriptorProto();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FileDescriptorProto.class, defaultInstance);
    }

    public static com.google.protobuf.DescriptorProtos.FileDescriptorProto getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser PARSER;

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

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

    /**
     * optional string name = 1 [json_name = "name"];
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    java.util.List 
        getFieldList();
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index);
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    int getFieldCount();

    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    java.util.List 
        getExtensionList();
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index);
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    int getExtensionCount();

    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    java.util.List 
        getNestedTypeList();
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index);
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    int getNestedTypeCount();

    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    java.util.List 
        getEnumTypeList();
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index);
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    int getEnumTypeCount();

    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    java.util.List 
        getExtensionRangeList();
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index);
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    int getExtensionRangeCount();

    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    java.util.List 
        getOneofDeclList();
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    com.google.protobuf.DescriptorProtos.OneofDescriptorProto getOneofDecl(int index);
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    int getOneofDeclCount();

    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     * @return Whether the options field is set.
     */
    boolean hasOptions();
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     * @return The options.
     */
    com.google.protobuf.DescriptorProtos.MessageOptions getOptions();

    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    java.util.List 
        getReservedRangeList();
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getReservedRange(int index);
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    int getReservedRangeCount();

    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @return A list containing the reservedName.
     */
    java.util.List
        getReservedNameList();
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @return The count of reservedName.
     */
    int getReservedNameCount();
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param index The index of the element to return.
     * @return The reservedName at the given index.
     */
    java.lang.String getReservedName(int index);
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param index The index of the element to return.
     * @return The reservedName at the given index.
     */
    com.google.protobuf.ByteString
        getReservedNameBytes(int index);
  }
  /**
   * Protobuf type {@code google.protobuf.DescriptorProto}
   */
  public  static final class DescriptorProto extends
      com.google.protobuf.GeneratedMessageLite<
          DescriptorProto, DescriptorProto.Builder> implements
      // @@protoc_insertion_point(message_implements:google.protobuf.DescriptorProto)
      DescriptorProtoOrBuilder {
    private DescriptorProto() {
      name_ = "";
      field_ = emptyProtobufList();
      extension_ = emptyProtobufList();
      nestedType_ = emptyProtobufList();
      enumType_ = emptyProtobufList();
      extensionRange_ = emptyProtobufList();
      oneofDecl_ = emptyProtobufList();
      reservedRange_ = emptyProtobufList();
      reservedName_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    public interface ExtensionRangeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:google.protobuf.DescriptorProto.ExtensionRange)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return Whether the start field is set.
       */
      boolean hasStart();
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return The start.
       */
      int getStart();

      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return Whether the end field is set.
       */
      boolean hasEnd();
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return The end.
       */
      int getEnd();

      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       * @return Whether the options field is set.
       */
      boolean hasOptions();
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       * @return The options.
       */
      com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getOptions();
    }
    /**
     * Protobuf type {@code google.protobuf.DescriptorProto.ExtensionRange}
     */
    public  static final class ExtensionRange extends
        com.google.protobuf.GeneratedMessageLite<
            ExtensionRange, ExtensionRange.Builder> implements
        // @@protoc_insertion_point(message_implements:google.protobuf.DescriptorProto.ExtensionRange)
        ExtensionRangeOrBuilder {
      private ExtensionRange() {
      }
      private int bitField0_;
      public static final int START_FIELD_NUMBER = 1;
      private int start_;
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return Whether the start field is set.
       */
      @java.lang.Override
      public boolean hasStart() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return The start.
       */
      @java.lang.Override
      public int getStart() {
        return start_;
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @param value The start to set.
       */
      private void setStart(int value) {
        bitField0_ |= 0x00000001;
        start_ = value;
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       */
      private void clearStart() {
        bitField0_ = (bitField0_ & ~0x00000001);
        start_ = 0;
      }

      public static final int END_FIELD_NUMBER = 2;
      private int end_;
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return Whether the end field is set.
       */
      @java.lang.Override
      public boolean hasEnd() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return The end.
       */
      @java.lang.Override
      public int getEnd() {
        return end_;
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @param value The end to set.
       */
      private void setEnd(int value) {
        bitField0_ |= 0x00000002;
        end_ = value;
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       */
      private void clearEnd() {
        bitField0_ = (bitField0_ & ~0x00000002);
        end_ = 0;
      }

      public static final int OPTIONS_FIELD_NUMBER = 3;
      private com.google.protobuf.DescriptorProtos.ExtensionRangeOptions options_;
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       */
      @java.lang.Override
      public boolean hasOptions() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getOptions() {
        return options_ == null ? com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.getDefaultInstance() : options_;
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       */
      private void setOptions(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions value) {
        value.getClass();
  options_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeOptions(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions value) {
        value.getClass();
  if (options_ != null &&
            options_ != com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.getDefaultInstance()) {
          options_ =
            com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.newBuilder(options_).mergeFrom(value).buildPartial();
        } else {
          options_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
       */
      private void clearOptions() {  options_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * Protobuf type {@code google.protobuf.DescriptorProto.ExtensionRange}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange, Builder> implements
          // @@protoc_insertion_point(builder_implements:google.protobuf.DescriptorProto.ExtensionRange)
          com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder {
        // Construct using com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return Whether the start field is set.
         */
        @java.lang.Override
        public boolean hasStart() {
          return instance.hasStart();
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return The start.
         */
        @java.lang.Override
        public int getStart() {
          return instance.getStart();
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @param value The start to set.
         * @return This builder for chaining.
         */
        public Builder setStart(int value) {
          copyOnWrite();
          instance.setStart(value);
          return this;
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return This builder for chaining.
         */
        public Builder clearStart() {
          copyOnWrite();
          instance.clearStart();
          return this;
        }

        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return Whether the end field is set.
         */
        @java.lang.Override
        public boolean hasEnd() {
          return instance.hasEnd();
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return The end.
         */
        @java.lang.Override
        public int getEnd() {
          return instance.getEnd();
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @param value The end to set.
         * @return This builder for chaining.
         */
        public Builder setEnd(int value) {
          copyOnWrite();
          instance.setEnd(value);
          return this;
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return This builder for chaining.
         */
        public Builder clearEnd() {
          copyOnWrite();
          instance.clearEnd();
          return this;
        }

        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        @java.lang.Override
        public boolean hasOptions() {
          return instance.hasOptions();
        }
        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        @java.lang.Override
        public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getOptions() {
          return instance.getOptions();
        }
        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        public Builder setOptions(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions value) {
          copyOnWrite();
          instance.setOptions(value);
          return this;
          }
        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        public Builder setOptions(
            com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder builderForValue) {
          copyOnWrite();
          instance.setOptions(builderForValue.build());
          return this;
        }
        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        public Builder mergeOptions(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions value) {
          copyOnWrite();
          instance.mergeOptions(value);
          return this;
        }
        /**
         * optional .google.protobuf.ExtensionRangeOptions options = 3 [json_name = "options"];
         */
        public Builder clearOptions() {  copyOnWrite();
          instance.clearOptions();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:google.protobuf.DescriptorProto.ExtensionRange)
      }
      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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "start_",
                "end_",
                "options_",
              };
              java.lang.String info =
                  "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0001\u0001\u1004\u0000\u0002" +
                  "\u1004\u0001\u0003\u1409\u0002";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser parser = PARSER;
            if (parser == null) {
              synchronized (com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser(
                          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:google.protobuf.DescriptorProto.ExtensionRange)
      private static final com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange DEFAULT_INSTANCE;
      static {
        ExtensionRange defaultInstance = new ExtensionRange();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          ExtensionRange.class, defaultInstance);
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser PARSER;

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

    public interface ReservedRangeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:google.protobuf.DescriptorProto.ReservedRange)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return Whether the start field is set.
       */
      boolean hasStart();
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return The start.
       */
      int getStart();

      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return Whether the end field is set.
       */
      boolean hasEnd();
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return The end.
       */
      int getEnd();
    }
    /**
     * Protobuf type {@code google.protobuf.DescriptorProto.ReservedRange}
     */
    public  static final class ReservedRange extends
        com.google.protobuf.GeneratedMessageLite<
            ReservedRange, ReservedRange.Builder> implements
        // @@protoc_insertion_point(message_implements:google.protobuf.DescriptorProto.ReservedRange)
        ReservedRangeOrBuilder {
      private ReservedRange() {
      }
      private int bitField0_;
      public static final int START_FIELD_NUMBER = 1;
      private int start_;
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return Whether the start field is set.
       */
      @java.lang.Override
      public boolean hasStart() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @return The start.
       */
      @java.lang.Override
      public int getStart() {
        return start_;
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       * @param value The start to set.
       */
      private void setStart(int value) {
        bitField0_ |= 0x00000001;
        start_ = value;
      }
      /**
       * optional int32 start = 1 [json_name = "start"];
       */
      private void clearStart() {
        bitField0_ = (bitField0_ & ~0x00000001);
        start_ = 0;
      }

      public static final int END_FIELD_NUMBER = 2;
      private int end_;
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return Whether the end field is set.
       */
      @java.lang.Override
      public boolean hasEnd() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @return The end.
       */
      @java.lang.Override
      public int getEnd() {
        return end_;
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       * @param value The end to set.
       */
      private void setEnd(int value) {
        bitField0_ |= 0x00000002;
        end_ = value;
      }
      /**
       * optional int32 end = 2 [json_name = "end"];
       */
      private void clearEnd() {
        bitField0_ = (bitField0_ & ~0x00000002);
        end_ = 0;
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange 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(com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * Protobuf type {@code google.protobuf.DescriptorProto.ReservedRange}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange, Builder> implements
          // @@protoc_insertion_point(builder_implements:google.protobuf.DescriptorProto.ReservedRange)
          com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder {
        // Construct using com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return Whether the start field is set.
         */
        @java.lang.Override
        public boolean hasStart() {
          return instance.hasStart();
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return The start.
         */
        @java.lang.Override
        public int getStart() {
          return instance.getStart();
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @param value The start to set.
         * @return This builder for chaining.
         */
        public Builder setStart(int value) {
          copyOnWrite();
          instance.setStart(value);
          return this;
        }
        /**
         * optional int32 start = 1 [json_name = "start"];
         * @return This builder for chaining.
         */
        public Builder clearStart() {
          copyOnWrite();
          instance.clearStart();
          return this;
        }

        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return Whether the end field is set.
         */
        @java.lang.Override
        public boolean hasEnd() {
          return instance.hasEnd();
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return The end.
         */
        @java.lang.Override
        public int getEnd() {
          return instance.getEnd();
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @param value The end to set.
         * @return This builder for chaining.
         */
        public Builder setEnd(int value) {
          copyOnWrite();
          instance.setEnd(value);
          return this;
        }
        /**
         * optional int32 end = 2 [json_name = "end"];
         * @return This builder for chaining.
         */
        public Builder clearEnd() {
          copyOnWrite();
          instance.clearEnd();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:google.protobuf.DescriptorProto.ReservedRange)
      }
      @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 com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "start_",
                "end_",
              };
              java.lang.String info =
                  "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1004\u0000\u0002" +
                  "\u1004\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser parser = PARSER;
            if (parser == null) {
              synchronized (com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser(
                          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:google.protobuf.DescriptorProto.ReservedRange)
      private static final com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange DEFAULT_INSTANCE;
      static {
        ReservedRange defaultInstance = new ReservedRange();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          ReservedRange.class, defaultInstance);
      }

      public static com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser PARSER;

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

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

    public static final int FIELD_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList field_;
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    @java.lang.Override
    public java.util.List getFieldList() {
      return field_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    public java.util.List 
        getFieldOrBuilderList() {
      return field_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    @java.lang.Override
    public int getFieldCount() {
      return field_.size();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index) {
      return field_.get(index);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getFieldOrBuilder(
        int index) {
      return field_.get(index);
    }
    private void ensureFieldIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = field_;
      if (!tmp.isModifiable()) {
        field_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void setField(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureFieldIsMutable();
      field_.set(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void addField(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureFieldIsMutable();
      field_.add(value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void addField(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureFieldIsMutable();
      field_.add(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void addAllField(
        java.lang.Iterable values) {
      ensureFieldIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, field_);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void clearField() {
      field_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
     */
    private void removeField(int index) {
      ensureFieldIsMutable();
      field_.remove(index);
    }

    public static final int EXTENSION_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.ProtobufList extension_;
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    @java.lang.Override
    public java.util.List getExtensionList() {
      return extension_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    public java.util.List 
        getExtensionOrBuilderList() {
      return extension_;
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    @java.lang.Override
    public int getExtensionCount() {
      return extension_.size();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
      return extension_.get(index);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
        int index) {
      return extension_.get(index);
    }
    private void ensureExtensionIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = extension_;
      if (!tmp.isModifiable()) {
        extension_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void setExtension(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.set(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.add(value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void addExtension(
        int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
      value.getClass();
  ensureExtensionIsMutable();
      extension_.add(index, value);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void addAllExtension(
        java.lang.Iterable values) {
      ensureExtensionIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, extension_);
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void clearExtension() {
      extension_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
     */
    private void removeExtension(int index) {
      ensureExtensionIsMutable();
      extension_.remove(index);
    }

    public static final int NESTED_TYPE_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList nestedType_;
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    @java.lang.Override
    public java.util.List getNestedTypeList() {
      return nestedType_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    public java.util.List 
        getNestedTypeOrBuilderList() {
      return nestedType_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    @java.lang.Override
    public int getNestedTypeCount() {
      return nestedType_.size();
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index) {
      return nestedType_.get(index);
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getNestedTypeOrBuilder(
        int index) {
      return nestedType_.get(index);
    }
    private void ensureNestedTypeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = nestedType_;
      if (!tmp.isModifiable()) {
        nestedType_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void setNestedType(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureNestedTypeIsMutable();
      nestedType_.set(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void addNestedType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureNestedTypeIsMutable();
      nestedType_.add(value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void addNestedType(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
      value.getClass();
  ensureNestedTypeIsMutable();
      nestedType_.add(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void addAllNestedType(
        java.lang.Iterable values) {
      ensureNestedTypeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, nestedType_);
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void clearNestedType() {
      nestedType_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
     */
    private void removeNestedType(int index) {
      ensureNestedTypeIsMutable();
      nestedType_.remove(index);
    }

    public static final int ENUM_TYPE_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList enumType_;
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    @java.lang.Override
    public java.util.List getEnumTypeList() {
      return enumType_;
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    public java.util.List 
        getEnumTypeOrBuilderList() {
      return enumType_;
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    @java.lang.Override
    public int getEnumTypeCount() {
      return enumType_.size();
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
      return enumType_.get(index);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
        int index) {
      return enumType_.get(index);
    }
    private void ensureEnumTypeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = enumType_;
      if (!tmp.isModifiable()) {
        enumType_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void setEnumType(
        int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.set(index, value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.add(value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void addEnumType(
        int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
      value.getClass();
  ensureEnumTypeIsMutable();
      enumType_.add(index, value);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void addAllEnumType(
        java.lang.Iterable values) {
      ensureEnumTypeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, enumType_);
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void clearEnumType() {
      enumType_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
     */
    private void removeEnumType(int index) {
      ensureEnumTypeIsMutable();
      enumType_.remove(index);
    }

    public static final int EXTENSION_RANGE_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.ProtobufList extensionRange_;
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    @java.lang.Override
    public java.util.List getExtensionRangeList() {
      return extensionRange_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    public java.util.List 
        getExtensionRangeOrBuilderList() {
      return extensionRange_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    @java.lang.Override
    public int getExtensionRangeCount() {
      return extensionRange_.size();
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index) {
      return extensionRange_.get(index);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder getExtensionRangeOrBuilder(
        int index) {
      return extensionRange_.get(index);
    }
    private void ensureExtensionRangeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = extensionRange_;
      if (!tmp.isModifiable()) {
        extensionRange_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void setExtensionRange(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
      value.getClass();
  ensureExtensionRangeIsMutable();
      extensionRange_.set(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void addExtensionRange(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
      value.getClass();
  ensureExtensionRangeIsMutable();
      extensionRange_.add(value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void addExtensionRange(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
      value.getClass();
  ensureExtensionRangeIsMutable();
      extensionRange_.add(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void addAllExtensionRange(
        java.lang.Iterable values) {
      ensureExtensionRangeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, extensionRange_);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void clearExtensionRange() {
      extensionRange_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
     */
    private void removeExtensionRange(int index) {
      ensureExtensionRangeIsMutable();
      extensionRange_.remove(index);
    }

    public static final int ONEOF_DECL_FIELD_NUMBER = 8;
    private com.google.protobuf.Internal.ProtobufList oneofDecl_;
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    @java.lang.Override
    public java.util.List getOneofDeclList() {
      return oneofDecl_;
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    public java.util.List 
        getOneofDeclOrBuilderList() {
      return oneofDecl_;
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    @java.lang.Override
    public int getOneofDeclCount() {
      return oneofDecl_.size();
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.OneofDescriptorProto getOneofDecl(int index) {
      return oneofDecl_.get(index);
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    public com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder getOneofDeclOrBuilder(
        int index) {
      return oneofDecl_.get(index);
    }
    private void ensureOneofDeclIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = oneofDecl_;
      if (!tmp.isModifiable()) {
        oneofDecl_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void setOneofDecl(
        int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
      value.getClass();
  ensureOneofDeclIsMutable();
      oneofDecl_.set(index, value);
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void addOneofDecl(com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
      value.getClass();
  ensureOneofDeclIsMutable();
      oneofDecl_.add(value);
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void addOneofDecl(
        int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
      value.getClass();
  ensureOneofDeclIsMutable();
      oneofDecl_.add(index, value);
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void addAllOneofDecl(
        java.lang.Iterable values) {
      ensureOneofDeclIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, oneofDecl_);
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void clearOneofDecl() {
      oneofDecl_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
     */
    private void removeOneofDecl(int index) {
      ensureOneofDeclIsMutable();
      oneofDecl_.remove(index);
    }

    public static final int OPTIONS_FIELD_NUMBER = 7;
    private com.google.protobuf.DescriptorProtos.MessageOptions options_;
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     */
    @java.lang.Override
    public boolean hasOptions() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.MessageOptions getOptions() {
      return options_ == null ? com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance() : options_;
    }
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     */
    private void setOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
      value.getClass();
  options_ = value;
      bitField0_ |= 0x00000002;
      }
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
      value.getClass();
  if (options_ != null &&
          options_ != com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance()) {
        options_ =
          com.google.protobuf.DescriptorProtos.MessageOptions.newBuilder(options_).mergeFrom(value).buildPartial();
      } else {
        options_ = value;
      }
      bitField0_ |= 0x00000002;
    }
    /**
     * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
     */
    private void clearOptions() {  options_ = null;
      bitField0_ = (bitField0_ & ~0x00000002);
    }

    public static final int RESERVED_RANGE_FIELD_NUMBER = 9;
    private com.google.protobuf.Internal.ProtobufList reservedRange_;
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    @java.lang.Override
    public java.util.List getReservedRangeList() {
      return reservedRange_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    public java.util.List 
        getReservedRangeOrBuilderList() {
      return reservedRange_;
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    @java.lang.Override
    public int getReservedRangeCount() {
      return reservedRange_.size();
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getReservedRange(int index) {
      return reservedRange_.get(index);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    public com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder getReservedRangeOrBuilder(
        int index) {
      return reservedRange_.get(index);
    }
    private void ensureReservedRangeIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = reservedRange_;
      if (!tmp.isModifiable()) {
        reservedRange_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void setReservedRange(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
      value.getClass();
  ensureReservedRangeIsMutable();
      reservedRange_.set(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void addReservedRange(com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
      value.getClass();
  ensureReservedRangeIsMutable();
      reservedRange_.add(value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void addReservedRange(
        int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
      value.getClass();
  ensureReservedRangeIsMutable();
      reservedRange_.add(index, value);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void addAllReservedRange(
        java.lang.Iterable values) {
      ensureReservedRangeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, reservedRange_);
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void clearReservedRange() {
      reservedRange_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
     */
    private void removeReservedRange(int index) {
      ensureReservedRangeIsMutable();
      reservedRange_.remove(index);
    }

    public static final int RESERVED_NAME_FIELD_NUMBER = 10;
    private com.google.protobuf.Internal.ProtobufList reservedName_;
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @return A list containing the reservedName.
     */
    @java.lang.Override
    public java.util.List getReservedNameList() {
      return reservedName_;
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @return The count of reservedName.
     */
    @java.lang.Override
    public int getReservedNameCount() {
      return reservedName_.size();
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param index The index of the element to return.
     * @return The reservedName at the given index.
     */
    @java.lang.Override
    public java.lang.String getReservedName(int index) {
      return reservedName_.get(index);
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param index The index of the value to return.
     * @return The bytes of the reservedName at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReservedNameBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          reservedName_.get(index));
    }
    private void ensureReservedNameIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp =
          reservedName_;  if (!tmp.isModifiable()) {
        reservedName_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param index The index to set the value at.
     * @param value The reservedName to set.
     */
    private void setReservedName(
        int index, java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  ensureReservedNameIsMutable();
      reservedName_.set(index, value);
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param value The reservedName to add.
     */
    private void addReservedName(
        java.lang.String value) {
      java.lang.Class valueClass = value.getClass();
  ensureReservedNameIsMutable();
      reservedName_.add(value);
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param values The reservedName to add.
     */
    private void addAllReservedName(
        java.lang.Iterable values) {
      ensureReservedNameIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, reservedName_);
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     */
    private void clearReservedName() {
      reservedName_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * repeated string reserved_name = 10 [json_name = "reservedName"];
     * @param value The bytes of the reservedName to add.
     */
    private void addReservedNameBytes(
        com.google.protobuf.ByteString value) {
      ensureReservedNameIsMutable();
      reservedName_.add(value.toStringUtf8());
    }

    public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static com.google.protobuf.DescriptorProtos.DescriptorProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.DescriptorProto 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(com.google.protobuf.DescriptorProtos.DescriptorProto prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code google.protobuf.DescriptorProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.google.protobuf.DescriptorProtos.DescriptorProto, Builder> implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.DescriptorProto)
        com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder {
      // Construct using com.google.protobuf.DescriptorProtos.DescriptorProto.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * optional string name = 1 [json_name = "name"];
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return instance.hasName();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return instance.getName();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return instance.getNameBytes();
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        copyOnWrite();
        instance.setName(value);
        return this;
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return This builder for chaining.
       */
      public Builder clearName() {
        copyOnWrite();
        instance.clearName();
        return this;
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @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;
      }

      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      @java.lang.Override
      public java.util.List getFieldList() {
        return java.util.Collections.unmodifiableList(
            instance.getFieldList());
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      @java.lang.Override
      public int getFieldCount() {
        return instance.getFieldCount();
      }/**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index) {
        return instance.getField(index);
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder setField(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.setField(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder setField(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setField(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder addField(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addField(value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder addField(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addField(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder addField(
          com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addField(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder addField(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addField(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder addAllField(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllField(values);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder clearField() {
        copyOnWrite();
        instance.clearField();
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto field = 2 [json_name = "field"];
       */
      public Builder removeField(int index) {
        copyOnWrite();
        instance.removeField(index);
        return this;
      }

      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      @java.lang.Override
      public java.util.List getExtensionList() {
        return java.util.Collections.unmodifiableList(
            instance.getExtensionList());
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      @java.lang.Override
      public int getExtensionCount() {
        return instance.getExtensionCount();
      }/**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
        return instance.getExtension(index);
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder setExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.setExtension(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder setExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setExtension(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addExtension(value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder addExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
        copyOnWrite();
        instance.addExtension(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder addExtension(
          com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addExtension(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder addExtension(
          int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addExtension(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder addAllExtension(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllExtension(values);
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder clearExtension() {
        copyOnWrite();
        instance.clearExtension();
        return this;
      }
      /**
       * repeated .google.protobuf.FieldDescriptorProto extension = 6 [json_name = "extension"];
       */
      public Builder removeExtension(int index) {
        copyOnWrite();
        instance.removeExtension(index);
        return this;
      }

      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      @java.lang.Override
      public java.util.List getNestedTypeList() {
        return java.util.Collections.unmodifiableList(
            instance.getNestedTypeList());
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      @java.lang.Override
      public int getNestedTypeCount() {
        return instance.getNestedTypeCount();
      }/**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index) {
        return instance.getNestedType(index);
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder setNestedType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.setNestedType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder setNestedType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setNestedType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder addNestedType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.addNestedType(value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder addNestedType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
        copyOnWrite();
        instance.addNestedType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder addNestedType(
          com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addNestedType(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder addNestedType(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addNestedType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder addAllNestedType(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllNestedType(values);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder clearNestedType() {
        copyOnWrite();
        instance.clearNestedType();
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto nested_type = 3 [json_name = "nestedType"];
       */
      public Builder removeNestedType(int index) {
        copyOnWrite();
        instance.removeNestedType(index);
        return this;
      }

      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      @java.lang.Override
      public java.util.List getEnumTypeList() {
        return java.util.Collections.unmodifiableList(
            instance.getEnumTypeList());
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      @java.lang.Override
      public int getEnumTypeCount() {
        return instance.getEnumTypeCount();
      }/**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
        return instance.getEnumType(index);
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder setEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.setEnumType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder setEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setEnumType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.addEnumType(value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder addEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
        copyOnWrite();
        instance.addEnumType(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder addEnumType(
          com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addEnumType(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder addEnumType(
          int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addEnumType(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder addAllEnumType(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllEnumType(values);
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder clearEnumType() {
        copyOnWrite();
        instance.clearEnumType();
        return this;
      }
      /**
       * repeated .google.protobuf.EnumDescriptorProto enum_type = 4 [json_name = "enumType"];
       */
      public Builder removeEnumType(int index) {
        copyOnWrite();
        instance.removeEnumType(index);
        return this;
      }

      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      @java.lang.Override
      public java.util.List getExtensionRangeList() {
        return java.util.Collections.unmodifiableList(
            instance.getExtensionRangeList());
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      @java.lang.Override
      public int getExtensionRangeCount() {
        return instance.getExtensionRangeCount();
      }/**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index) {
        return instance.getExtensionRange(index);
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder setExtensionRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
        copyOnWrite();
        instance.setExtensionRange(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder setExtensionRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
        copyOnWrite();
        instance.setExtensionRange(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder addExtensionRange(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
        copyOnWrite();
        instance.addExtensionRange(value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder addExtensionRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
        copyOnWrite();
        instance.addExtensionRange(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder addExtensionRange(
          com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
        copyOnWrite();
        instance.addExtensionRange(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder addExtensionRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
        copyOnWrite();
        instance.addExtensionRange(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder addAllExtensionRange(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllExtensionRange(values);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder clearExtensionRange() {
        copyOnWrite();
        instance.clearExtensionRange();
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5 [json_name = "extensionRange"];
       */
      public Builder removeExtensionRange(int index) {
        copyOnWrite();
        instance.removeExtensionRange(index);
        return this;
      }

      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      @java.lang.Override
      public java.util.List getOneofDeclList() {
        return java.util.Collections.unmodifiableList(
            instance.getOneofDeclList());
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      @java.lang.Override
      public int getOneofDeclCount() {
        return instance.getOneofDeclCount();
      }/**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.OneofDescriptorProto getOneofDecl(int index) {
        return instance.getOneofDecl(index);
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder setOneofDecl(
          int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
        copyOnWrite();
        instance.setOneofDecl(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder setOneofDecl(
          int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.setOneofDecl(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder addOneofDecl(com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
        copyOnWrite();
        instance.addOneofDecl(value);
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder addOneofDecl(
          int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto value) {
        copyOnWrite();
        instance.addOneofDecl(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder addOneofDecl(
          com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addOneofDecl(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder addOneofDecl(
          int index, com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder builderForValue) {
        copyOnWrite();
        instance.addOneofDecl(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder addAllOneofDecl(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllOneofDecl(values);
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder clearOneofDecl() {
        copyOnWrite();
        instance.clearOneofDecl();
        return this;
      }
      /**
       * repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8 [json_name = "oneofDecl"];
       */
      public Builder removeOneofDecl(int index) {
        copyOnWrite();
        instance.removeOneofDecl(index);
        return this;
      }

      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      @java.lang.Override
      public boolean hasOptions() {
        return instance.hasOptions();
      }
      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.MessageOptions getOptions() {
        return instance.getOptions();
      }
      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      public Builder setOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
        copyOnWrite();
        instance.setOptions(value);
        return this;
        }
      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      public Builder setOptions(
          com.google.protobuf.DescriptorProtos.MessageOptions.Builder builderForValue) {
        copyOnWrite();
        instance.setOptions(builderForValue.build());
        return this;
      }
      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      public Builder mergeOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
        copyOnWrite();
        instance.mergeOptions(value);
        return this;
      }
      /**
       * optional .google.protobuf.MessageOptions options = 7 [json_name = "options"];
       */
      public Builder clearOptions() {  copyOnWrite();
        instance.clearOptions();
        return this;
      }

      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      @java.lang.Override
      public java.util.List getReservedRangeList() {
        return java.util.Collections.unmodifiableList(
            instance.getReservedRangeList());
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      @java.lang.Override
      public int getReservedRangeCount() {
        return instance.getReservedRangeCount();
      }/**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getReservedRange(int index) {
        return instance.getReservedRange(index);
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder setReservedRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
        copyOnWrite();
        instance.setReservedRange(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder setReservedRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder builderForValue) {
        copyOnWrite();
        instance.setReservedRange(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder addReservedRange(com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
        copyOnWrite();
        instance.addReservedRange(value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder addReservedRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange value) {
        copyOnWrite();
        instance.addReservedRange(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder addReservedRange(
          com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder builderForValue) {
        copyOnWrite();
        instance.addReservedRange(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder addReservedRange(
          int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder builderForValue) {
        copyOnWrite();
        instance.addReservedRange(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder addAllReservedRange(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllReservedRange(values);
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder clearReservedRange() {
        copyOnWrite();
        instance.clearReservedRange();
        return this;
      }
      /**
       * repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9 [json_name = "reservedRange"];
       */
      public Builder removeReservedRange(int index) {
        copyOnWrite();
        instance.removeReservedRange(index);
        return this;
      }

      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @return A list containing the reservedName.
       */
      @java.lang.Override
      public java.util.List
          getReservedNameList() {
        return java.util.Collections.unmodifiableList(
            instance.getReservedNameList());
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @return The count of reservedName.
       */
      @java.lang.Override
      public int getReservedNameCount() {
        return instance.getReservedNameCount();
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param index The index of the element to return.
       * @return The reservedName at the given index.
       */
      @java.lang.Override
      public java.lang.String getReservedName(int index) {
        return instance.getReservedName(index);
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param index The index of the value to return.
       * @return The bytes of the reservedName at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getReservedNameBytes(int index) {
        return instance.getReservedNameBytes(index);
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param index The index to set the value at.
       * @param value The reservedName to set.
       * @return This builder for chaining.
       */
      public Builder setReservedName(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setReservedName(index, value);
        return this;
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param value The reservedName to add.
       * @return This builder for chaining.
       */
      public Builder addReservedName(
          java.lang.String value) {
        copyOnWrite();
        instance.addReservedName(value);
        return this;
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param values The reservedName to add.
       * @return This builder for chaining.
       */
      public Builder addAllReservedName(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllReservedName(values);
        return this;
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @return This builder for chaining.
       */
      public Builder clearReservedName() {
        copyOnWrite();
        instance.clearReservedName();
        return this;
      }
      /**
       * repeated string reserved_name = 10 [json_name = "reservedName"];
       * @param value The bytes of the reservedName to add.
       * @return This builder for chaining.
       */
      public Builder addReservedNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addReservedNameBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.DescriptorProto)
    }
    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 com.google.protobuf.DescriptorProtos.DescriptorProto();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "name_",
              "field_",
              com.google.protobuf.DescriptorProtos.FieldDescriptorProto.class,
              "nestedType_",
              com.google.protobuf.DescriptorProtos.DescriptorProto.class,
              "enumType_",
              com.google.protobuf.DescriptorProtos.EnumDescriptorProto.class,
              "extensionRange_",
              com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.class,
              "extension_",
              com.google.protobuf.DescriptorProtos.FieldDescriptorProto.class,
              "options_",
              "oneofDecl_",
              com.google.protobuf.DescriptorProtos.OneofDescriptorProto.class,
              "reservedRange_",
              com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.class,
              "reservedName_",
            };
            java.lang.String info =
                "\u0001\n\u0000\u0001\u0001\n\n\u0000\b\u0007\u0001\u1008\u0000\u0002\u041b\u0003" +
                "\u041b\u0004\u041b\u0005\u041b\u0006\u041b\u0007\u1409\u0001\b\u041b\t\u001b\n\u001a" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser parser = PARSER;
          if (parser == null) {
            synchronized (com.google.protobuf.DescriptorProtos.DescriptorProto.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser(
                        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:google.protobuf.DescriptorProto)
    private static final com.google.protobuf.DescriptorProtos.DescriptorProto DEFAULT_INSTANCE;
    static {
      DescriptorProto defaultInstance = new DescriptorProto();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DescriptorProto.class, defaultInstance);
    }

    public static com.google.protobuf.DescriptorProtos.DescriptorProto getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser PARSER;

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

  public interface ExtensionRangeOptionsOrBuilder extends 
      // @@protoc_insertion_point(interface_extends:google.protobuf.ExtensionRangeOptions)
       com.google.protobuf.GeneratedMessageLite.
            ExtendableMessageOrBuilder<
                ExtensionRangeOptions, ExtensionRangeOptions.Builder> {

    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    java.util.List 
        getUninterpretedOptionList();
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    int getUninterpretedOptionCount();

    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    java.util.List 
        getDeclarationList();
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration getDeclaration(int index);
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    int getDeclarationCount();

    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     * @return Whether the features field is set.
     */
    boolean hasFeatures();
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     * @return The features.
     */
    com.google.protobuf.DescriptorProtos.FeatureSet getFeatures();

    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     * @return Whether the verification field is set.
     */
    boolean hasVerification();
    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     * @return The verification.
     */
    com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState getVerification();
  }
  /**
   * Protobuf type {@code google.protobuf.ExtensionRangeOptions}
   */
  public  static final class ExtensionRangeOptions extends
      com.google.protobuf.GeneratedMessageLite.ExtendableMessage<
        ExtensionRangeOptions, ExtensionRangeOptions.Builder> implements
      // @@protoc_insertion_point(message_implements:google.protobuf.ExtensionRangeOptions)
      ExtensionRangeOptionsOrBuilder {
    private ExtensionRangeOptions() {
      uninterpretedOption_ = emptyProtobufList();
      declaration_ = emptyProtobufList();
      verification_ = 1;
    }
    /**
     * Protobuf enum {@code google.protobuf.ExtensionRangeOptions.VerificationState}
     */
    public enum VerificationState
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * DECLARATION = 0;
       */
      DECLARATION(0),
      /**
       * UNVERIFIED = 1;
       */
      UNVERIFIED(1),
      ;

      /**
       * DECLARATION = 0;
       */
      public static final int DECLARATION_VALUE = 0;
      /**
       * UNVERIFIED = 1;
       */
      public static final int UNVERIFIED_VALUE = 1;


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

      public static VerificationState forNumber(int value) {
        switch (value) {
          case 0: return DECLARATION;
          case 1: return UNVERIFIED;
          default: return null;
        }
      }

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:google.protobuf.ExtensionRangeOptions.VerificationState)
    }

    public interface DeclarationOrBuilder extends
        // @@protoc_insertion_point(interface_extends:google.protobuf.ExtensionRangeOptions.Declaration)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * optional int32 number = 1 [json_name = "number"];
       * @return Whether the number field is set.
       */
      boolean hasNumber();
      /**
       * optional int32 number = 1 [json_name = "number"];
       * @return The number.
       */
      int getNumber();

      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return Whether the fullName field is set.
       */
      boolean hasFullName();
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return The fullName.
       */
      java.lang.String getFullName();
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return The bytes for fullName.
       */
      com.google.protobuf.ByteString
          getFullNameBytes();

      /**
       * optional string type = 3 [json_name = "type"];
       * @return Whether the type field is set.
       */
      boolean hasType();
      /**
       * optional string type = 3 [json_name = "type"];
       * @return The type.
       */
      java.lang.String getType();
      /**
       * optional string type = 3 [json_name = "type"];
       * @return The bytes for type.
       */
      com.google.protobuf.ByteString
          getTypeBytes();

      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       * @return Whether the reserved field is set.
       */
      boolean hasReserved();
      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       * @return The reserved.
       */
      boolean getReserved();

      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       * @return Whether the repeated field is set.
       */
      boolean hasRepeated();
      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       * @return The repeated.
       */
      boolean getRepeated();
    }
    /**
     * Protobuf type {@code google.protobuf.ExtensionRangeOptions.Declaration}
     */
    public  static final class Declaration extends
        com.google.protobuf.GeneratedMessageLite<
            Declaration, Declaration.Builder> implements
        // @@protoc_insertion_point(message_implements:google.protobuf.ExtensionRangeOptions.Declaration)
        DeclarationOrBuilder {
      private Declaration() {
        fullName_ = "";
        type_ = "";
      }
      private int bitField0_;
      public static final int NUMBER_FIELD_NUMBER = 1;
      private int number_;
      /**
       * optional int32 number = 1 [json_name = "number"];
       * @return Whether the number field is set.
       */
      @java.lang.Override
      public boolean hasNumber() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 number = 1 [json_name = "number"];
       * @return The number.
       */
      @java.lang.Override
      public int getNumber() {
        return number_;
      }
      /**
       * optional int32 number = 1 [json_name = "number"];
       * @param value The number to set.
       */
      private void setNumber(int value) {
        bitField0_ |= 0x00000001;
        number_ = value;
      }
      /**
       * optional int32 number = 1 [json_name = "number"];
       */
      private void clearNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        number_ = 0;
      }

      public static final int FULL_NAME_FIELD_NUMBER = 2;
      private java.lang.String fullName_;
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return Whether the fullName field is set.
       */
      @java.lang.Override
      public boolean hasFullName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return The fullName.
       */
      @java.lang.Override
      public java.lang.String getFullName() {
        return fullName_;
      }
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @return The bytes for fullName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFullNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(fullName_);
      }
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @param value The fullName to set.
       */
      private void setFullName(
          java.lang.String value) {
        java.lang.Class valueClass = value.getClass();
  bitField0_ |= 0x00000002;
        fullName_ = value;
      }
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       */
      private void clearFullName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fullName_ = getDefaultInstance().getFullName();
      }
      /**
       * optional string full_name = 2 [json_name = "fullName"];
       * @param value The bytes for fullName to set.
       */
      private void setFullNameBytes(
          com.google.protobuf.ByteString value) {
        fullName_ = value.toStringUtf8();
        bitField0_ |= 0x00000002;
      }

      public static final int TYPE_FIELD_NUMBER = 3;
      private java.lang.String type_;
      /**
       * optional string type = 3 [json_name = "type"];
       * @return Whether the type field is set.
       */
      @java.lang.Override
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string type = 3 [json_name = "type"];
       * @return The type.
       */
      @java.lang.Override
      public java.lang.String getType() {
        return type_;
      }
      /**
       * optional string type = 3 [json_name = "type"];
       * @return The bytes for type.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTypeBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(type_);
      }
      /**
       * optional string type = 3 [json_name = "type"];
       * @param value The type to set.
       */
      private void setType(
          java.lang.String value) {
        java.lang.Class valueClass = value.getClass();
  bitField0_ |= 0x00000004;
        type_ = value;
      }
      /**
       * optional string type = 3 [json_name = "type"];
       */
      private void clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = getDefaultInstance().getType();
      }
      /**
       * optional string type = 3 [json_name = "type"];
       * @param value The bytes for type to set.
       */
      private void setTypeBytes(
          com.google.protobuf.ByteString value) {
        type_ = value.toStringUtf8();
        bitField0_ |= 0x00000004;
      }

      public static final int RESERVED_FIELD_NUMBER = 5;
      private boolean reserved_;
      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       * @return Whether the reserved field is set.
       */
      @java.lang.Override
      public boolean hasReserved() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       * @return The reserved.
       */
      @java.lang.Override
      public boolean getReserved() {
        return reserved_;
      }
      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       * @param value The reserved to set.
       */
      private void setReserved(boolean value) {
        bitField0_ |= 0x00000008;
        reserved_ = value;
      }
      /**
       * optional bool reserved = 5 [json_name = "reserved"];
       */
      private void clearReserved() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reserved_ = false;
      }

      public static final int REPEATED_FIELD_NUMBER = 6;
      private boolean repeated_;
      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       * @return Whether the repeated field is set.
       */
      @java.lang.Override
      public boolean hasRepeated() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       * @return The repeated.
       */
      @java.lang.Override
      public boolean getRepeated() {
        return repeated_;
      }
      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       * @param value The repeated to set.
       */
      private void setRepeated(boolean value) {
        bitField0_ |= 0x00000010;
        repeated_ = value;
      }
      /**
       * optional bool repeated = 6 [json_name = "repeated"];
       */
      private void clearRepeated() {
        bitField0_ = (bitField0_ & ~0x00000010);
        repeated_ = false;
      }

      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration 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(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * Protobuf type {@code google.protobuf.ExtensionRangeOptions.Declaration}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration, Builder> implements
          // @@protoc_insertion_point(builder_implements:google.protobuf.ExtensionRangeOptions.Declaration)
          com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.DeclarationOrBuilder {
        // Construct using com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * optional int32 number = 1 [json_name = "number"];
         * @return Whether the number field is set.
         */
        @java.lang.Override
        public boolean hasNumber() {
          return instance.hasNumber();
        }
        /**
         * optional int32 number = 1 [json_name = "number"];
         * @return The number.
         */
        @java.lang.Override
        public int getNumber() {
          return instance.getNumber();
        }
        /**
         * optional int32 number = 1 [json_name = "number"];
         * @param value The number to set.
         * @return This builder for chaining.
         */
        public Builder setNumber(int value) {
          copyOnWrite();
          instance.setNumber(value);
          return this;
        }
        /**
         * optional int32 number = 1 [json_name = "number"];
         * @return This builder for chaining.
         */
        public Builder clearNumber() {
          copyOnWrite();
          instance.clearNumber();
          return this;
        }

        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @return Whether the fullName field is set.
         */
        @java.lang.Override
        public boolean hasFullName() {
          return instance.hasFullName();
        }
        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @return The fullName.
         */
        @java.lang.Override
        public java.lang.String getFullName() {
          return instance.getFullName();
        }
        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @return The bytes for fullName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getFullNameBytes() {
          return instance.getFullNameBytes();
        }
        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @param value The fullName to set.
         * @return This builder for chaining.
         */
        public Builder setFullName(
            java.lang.String value) {
          copyOnWrite();
          instance.setFullName(value);
          return this;
        }
        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @return This builder for chaining.
         */
        public Builder clearFullName() {
          copyOnWrite();
          instance.clearFullName();
          return this;
        }
        /**
         * optional string full_name = 2 [json_name = "fullName"];
         * @param value The bytes for fullName to set.
         * @return This builder for chaining.
         */
        public Builder setFullNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setFullNameBytes(value);
          return this;
        }

        /**
         * optional string type = 3 [json_name = "type"];
         * @return Whether the type field is set.
         */
        @java.lang.Override
        public boolean hasType() {
          return instance.hasType();
        }
        /**
         * optional string type = 3 [json_name = "type"];
         * @return The type.
         */
        @java.lang.Override
        public java.lang.String getType() {
          return instance.getType();
        }
        /**
         * optional string type = 3 [json_name = "type"];
         * @return The bytes for type.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getTypeBytes() {
          return instance.getTypeBytes();
        }
        /**
         * optional string type = 3 [json_name = "type"];
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setType(
            java.lang.String value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * optional string type = 3 [json_name = "type"];
         * @return This builder for chaining.
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
        /**
         * optional string type = 3 [json_name = "type"];
         * @param value The bytes for type to set.
         * @return This builder for chaining.
         */
        public Builder setTypeBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setTypeBytes(value);
          return this;
        }

        /**
         * optional bool reserved = 5 [json_name = "reserved"];
         * @return Whether the reserved field is set.
         */
        @java.lang.Override
        public boolean hasReserved() {
          return instance.hasReserved();
        }
        /**
         * optional bool reserved = 5 [json_name = "reserved"];
         * @return The reserved.
         */
        @java.lang.Override
        public boolean getReserved() {
          return instance.getReserved();
        }
        /**
         * optional bool reserved = 5 [json_name = "reserved"];
         * @param value The reserved to set.
         * @return This builder for chaining.
         */
        public Builder setReserved(boolean value) {
          copyOnWrite();
          instance.setReserved(value);
          return this;
        }
        /**
         * optional bool reserved = 5 [json_name = "reserved"];
         * @return This builder for chaining.
         */
        public Builder clearReserved() {
          copyOnWrite();
          instance.clearReserved();
          return this;
        }

        /**
         * optional bool repeated = 6 [json_name = "repeated"];
         * @return Whether the repeated field is set.
         */
        @java.lang.Override
        public boolean hasRepeated() {
          return instance.hasRepeated();
        }
        /**
         * optional bool repeated = 6 [json_name = "repeated"];
         * @return The repeated.
         */
        @java.lang.Override
        public boolean getRepeated() {
          return instance.getRepeated();
        }
        /**
         * optional bool repeated = 6 [json_name = "repeated"];
         * @param value The repeated to set.
         * @return This builder for chaining.
         */
        public Builder setRepeated(boolean value) {
          copyOnWrite();
          instance.setRepeated(value);
          return this;
        }
        /**
         * optional bool repeated = 6 [json_name = "repeated"];
         * @return This builder for chaining.
         */
        public Builder clearRepeated() {
          copyOnWrite();
          instance.clearRepeated();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:google.protobuf.ExtensionRangeOptions.Declaration)
      }
      @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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "number_",
                "fullName_",
                "type_",
                "reserved_",
                "repeated_",
              };
              java.lang.String info =
                  "\u0001\u0005\u0000\u0001\u0001\u0006\u0005\u0000\u0000\u0000\u0001\u1004\u0000\u0002" +
                  "\u1008\u0001\u0003\u1008\u0002\u0005\u1007\u0003\u0006\u1007\u0004";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser parser = PARSER;
            if (parser == null) {
              synchronized (com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser(
                          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:google.protobuf.ExtensionRangeOptions.Declaration)
      private static final com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration DEFAULT_INSTANCE;
      static {
        Declaration defaultInstance = new Declaration();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Declaration.class, defaultInstance);
      }

      public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser PARSER;

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

    private int bitField0_;
    public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
    private com.google.protobuf.Internal.ProtobufList uninterpretedOption_;
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    @java.lang.Override
    public java.util.List getUninterpretedOptionList() {
      return uninterpretedOption_;
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    public java.util.List 
        getUninterpretedOptionOrBuilderList() {
      return uninterpretedOption_;
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    @java.lang.Override
    public int getUninterpretedOptionCount() {
      return uninterpretedOption_.size();
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
      return uninterpretedOption_.get(index);
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
        int index) {
      return uninterpretedOption_.get(index);
    }
    private void ensureUninterpretedOptionIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = uninterpretedOption_;
      if (!tmp.isModifiable()) {
        uninterpretedOption_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void setUninterpretedOption(
        int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
      value.getClass();
  ensureUninterpretedOptionIsMutable();
      uninterpretedOption_.set(index, value);
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
      value.getClass();
  ensureUninterpretedOptionIsMutable();
      uninterpretedOption_.add(value);
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void addUninterpretedOption(
        int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
      value.getClass();
  ensureUninterpretedOptionIsMutable();
      uninterpretedOption_.add(index, value);
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void addAllUninterpretedOption(
        java.lang.Iterable values) {
      ensureUninterpretedOptionIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, uninterpretedOption_);
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void clearUninterpretedOption() {
      uninterpretedOption_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
     */
    private void removeUninterpretedOption(int index) {
      ensureUninterpretedOptionIsMutable();
      uninterpretedOption_.remove(index);
    }

    public static final int DECLARATION_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList declaration_;
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    @java.lang.Override
    public java.util.List getDeclarationList() {
      return declaration_;
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    public java.util.List 
        getDeclarationOrBuilderList() {
      return declaration_;
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    @java.lang.Override
    public int getDeclarationCount() {
      return declaration_.size();
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration getDeclaration(int index) {
      return declaration_.get(index);
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.DeclarationOrBuilder getDeclarationOrBuilder(
        int index) {
      return declaration_.get(index);
    }
    private void ensureDeclarationIsMutable() {
      com.google.protobuf.Internal.ProtobufList tmp = declaration_;
      if (!tmp.isModifiable()) {
        declaration_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void setDeclaration(
        int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
      value.getClass();
  ensureDeclarationIsMutable();
      declaration_.set(index, value);
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void addDeclaration(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
      value.getClass();
  ensureDeclarationIsMutable();
      declaration_.add(value);
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void addDeclaration(
        int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
      value.getClass();
  ensureDeclarationIsMutable();
      declaration_.add(index, value);
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void addAllDeclaration(
        java.lang.Iterable values) {
      ensureDeclarationIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, declaration_);
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void clearDeclaration() {
      declaration_ = emptyProtobufList();
    }
    /**
     * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
     */
    private void removeDeclaration(int index) {
      ensureDeclarationIsMutable();
      declaration_.remove(index);
    }

    public static final int FEATURES_FIELD_NUMBER = 50;
    private com.google.protobuf.DescriptorProtos.FeatureSet features_;
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     */
    @java.lang.Override
    public boolean hasFeatures() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FeatureSet getFeatures() {
      return features_ == null ? com.google.protobuf.DescriptorProtos.FeatureSet.getDefaultInstance() : features_;
    }
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     */
    private void setFeatures(com.google.protobuf.DescriptorProtos.FeatureSet value) {
      value.getClass();
  features_ = value;
      bitField0_ |= 0x00000001;
      }
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFeatures(com.google.protobuf.DescriptorProtos.FeatureSet value) {
      value.getClass();
  if (features_ != null &&
          features_ != com.google.protobuf.DescriptorProtos.FeatureSet.getDefaultInstance()) {
        features_ =
          com.google.protobuf.DescriptorProtos.FeatureSet.newBuilder(features_).mergeFrom(value).buildPartial();
      } else {
        features_ = value;
      }
      bitField0_ |= 0x00000001;
    }
    /**
     * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
     */
    private void clearFeatures() {  features_ = null;
      bitField0_ = (bitField0_ & ~0x00000001);
    }

    public static final int VERIFICATION_FIELD_NUMBER = 3;
    private int verification_;
    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     * @return Whether the verification field is set.
     */
    @java.lang.Override
    public boolean hasVerification() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     * @return The verification.
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState getVerification() {
      com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState result = com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState.forNumber(verification_);
      return result == null ? com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState.UNVERIFIED : result;
    }
    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     * @param value The verification to set.
     */
    private void setVerification(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState value) {
      verification_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
     */
    private void clearVerification() {
      bitField0_ = (bitField0_ & ~0x00000002);
      verification_ = 1;
    }

    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions 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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions 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(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code google.protobuf.ExtensionRangeOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.ExtendableBuilder<
          com.google.protobuf.DescriptorProtos.ExtensionRangeOptions, Builder> implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.ExtensionRangeOptions)
        com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder {
      // Construct using com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      @java.lang.Override
      public java.util.List getUninterpretedOptionList() {
        return java.util.Collections.unmodifiableList(
            instance.getUninterpretedOptionList());
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      @java.lang.Override
      public int getUninterpretedOptionCount() {
        return instance.getUninterpretedOptionCount();
      }/**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
        return instance.getUninterpretedOption(index);
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder setUninterpretedOption(
          int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
        copyOnWrite();
        instance.setUninterpretedOption(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder setUninterpretedOption(
          int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
        copyOnWrite();
        instance.setUninterpretedOption(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
        copyOnWrite();
        instance.addUninterpretedOption(value);
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder addUninterpretedOption(
          int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
        copyOnWrite();
        instance.addUninterpretedOption(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder addUninterpretedOption(
          com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
        copyOnWrite();
        instance.addUninterpretedOption(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder addUninterpretedOption(
          int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
        copyOnWrite();
        instance.addUninterpretedOption(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder addAllUninterpretedOption(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllUninterpretedOption(values);
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder clearUninterpretedOption() {
        copyOnWrite();
        instance.clearUninterpretedOption();
        return this;
      }
      /**
       * repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999 [json_name = "uninterpretedOption"];
       */
      public Builder removeUninterpretedOption(int index) {
        copyOnWrite();
        instance.removeUninterpretedOption(index);
        return this;
      }

      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      @java.lang.Override
      public java.util.List getDeclarationList() {
        return java.util.Collections.unmodifiableList(
            instance.getDeclarationList());
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      @java.lang.Override
      public int getDeclarationCount() {
        return instance.getDeclarationCount();
      }/**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration getDeclaration(int index) {
        return instance.getDeclaration(index);
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder setDeclaration(
          int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
        copyOnWrite();
        instance.setDeclaration(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder setDeclaration(
          int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.Builder builderForValue) {
        copyOnWrite();
        instance.setDeclaration(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder addDeclaration(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
        copyOnWrite();
        instance.addDeclaration(value);
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder addDeclaration(
          int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration value) {
        copyOnWrite();
        instance.addDeclaration(index, value);
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder addDeclaration(
          com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.Builder builderForValue) {
        copyOnWrite();
        instance.addDeclaration(builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder addDeclaration(
          int index, com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.Builder builderForValue) {
        copyOnWrite();
        instance.addDeclaration(index,
            builderForValue.build());
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder addAllDeclaration(
          java.lang.Iterable values) {
        copyOnWrite();
        instance.addAllDeclaration(values);
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder clearDeclaration() {
        copyOnWrite();
        instance.clearDeclaration();
        return this;
      }
      /**
       * repeated .google.protobuf.ExtensionRangeOptions.Declaration declaration = 2 [json_name = "declaration", retention = RETENTION_SOURCE];
       */
      public Builder removeDeclaration(int index) {
        copyOnWrite();
        instance.removeDeclaration(index);
        return this;
      }

      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      @java.lang.Override
      public boolean hasFeatures() {
        return instance.hasFeatures();
      }
      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.FeatureSet getFeatures() {
        return instance.getFeatures();
      }
      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      public Builder setFeatures(com.google.protobuf.DescriptorProtos.FeatureSet value) {
        copyOnWrite();
        instance.setFeatures(value);
        return this;
        }
      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      public Builder setFeatures(
          com.google.protobuf.DescriptorProtos.FeatureSet.Builder builderForValue) {
        copyOnWrite();
        instance.setFeatures(builderForValue.build());
        return this;
      }
      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      public Builder mergeFeatures(com.google.protobuf.DescriptorProtos.FeatureSet value) {
        copyOnWrite();
        instance.mergeFeatures(value);
        return this;
      }
      /**
       * optional .google.protobuf.FeatureSet features = 50 [json_name = "features"];
       */
      public Builder clearFeatures() {  copyOnWrite();
        instance.clearFeatures();
        return this;
      }

      /**
       * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
       * @return Whether the verification field is set.
       */
      @java.lang.Override
      public boolean hasVerification() {
        return instance.hasVerification();
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
       * @return The verification.
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState getVerification() {
        return instance.getVerification();
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
       * @param value The enum numeric value on the wire for verification to set.
       * @return This builder for chaining.
       */
      public Builder setVerification(com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState value) {
        copyOnWrite();
        instance.setVerification(value);
        return this;
      }
      /**
       * optional .google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED, json_name = "verification", retention = RETENTION_SOURCE];
       * @return This builder for chaining.
       */
      public Builder clearVerification() {
        copyOnWrite();
        instance.clearVerification();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.ExtensionRangeOptions)
    }
    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 com.google.protobuf.DescriptorProtos.ExtensionRangeOptions();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "declaration_",
              com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Declaration.class,
              "verification_",
              com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.VerificationState.internalGetVerifier(),
              "features_",
              "uninterpretedOption_",
              com.google.protobuf.DescriptorProtos.UninterpretedOption.class,
            };
            java.lang.String info =
                "\u0001\u0004\u0000\u0001\u0002\u03e7\u0004\u0000\u0002\u0002\u0002\u001b\u0003\u180c" +
                "\u00012\u1409\u0000\u03e7\u041b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser parser = PARSER;
          if (parser == null) {
            synchronized (com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser(
                        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:google.protobuf.ExtensionRangeOptions)
    private static final com.google.protobuf.DescriptorProtos.ExtensionRangeOptions DEFAULT_INSTANCE;
    static {
      ExtensionRangeOptions defaultInstance = new ExtensionRangeOptions();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ExtensionRangeOptions.class, defaultInstance);
    }

    public static com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser PARSER;

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

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

    /**
     * optional string name = 1 [json_name = "name"];
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * optional string name = 1 [json_name = "name"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional int32 number = 3 [json_name = "number"];
     * @return Whether the number field is set.
     */
    boolean hasNumber();
    /**
     * optional int32 number = 3 [json_name = "number"];
     * @return The number.
     */
    int getNumber();

    /**
     * optional .google.protobuf.FieldDescriptorProto.Label label = 4 [json_name = "label"];
     * @return Whether the label field is set.
     */
    boolean hasLabel();
    /**
     * optional .google.protobuf.FieldDescriptorProto.Label label = 4 [json_name = "label"];
     * @return The label.
     */
    com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getLabel();

    /**
     * optional .google.protobuf.FieldDescriptorProto.Type type = 5 [json_name = "type"];
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * optional .google.protobuf.FieldDescriptorProto.Type type = 5 [json_name = "type"];
     * @return The type.
     */
    com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getType();

    /**
     * optional string type_name = 6 [json_name = "typeName"];
     * @return Whether the typeName field is set.
     */
    boolean hasTypeName();
    /**
     * optional string type_name = 6 [json_name = "typeName"];
     * @return The typeName.
     */
    java.lang.String getTypeName();
    /**
     * optional string type_name = 6 [json_name = "typeName"];
     * @return The bytes for typeName.
     */
    com.google.protobuf.ByteString
        getTypeNameBytes();

    /**
     * optional string extendee = 2 [json_name = "extendee"];
     * @return Whether the extendee field is set.
     */
    boolean hasExtendee();
    /**
     * optional string extendee = 2 [json_name = "extendee"];
     * @return The extendee.
     */
    java.lang.String getExtendee();
    /**
     * optional string extendee = 2 [json_name = "extendee"];
     * @return The bytes for extendee.
     */
    com.google.protobuf.ByteString
        getExtendeeBytes();

    /**
     * optional string default_value = 7 [json_name = "defaultValue"];
     * @return Whether the defaultValue field is set.
     */
    boolean hasDefaultValue();
    /**
     * optional string default_value = 7 [json_name = "defaultValue"];
     * @return The defaultValue.
     */
    java.lang.String getDefaultValue();
    /**
     * optional string default_value = 7 [json_name = "defaultValue"];
     * @return The bytes for defaultValue.
     */
    com.google.protobuf.ByteString
        getDefaultValueBytes();

    /**
     * optional int32 oneof_index = 9 [json_name = "oneofIndex"];
     * @return Whether the oneofIndex field is set.
     */
    boolean hasOneofIndex();
    /**
     * optional int32 oneof_index = 9 [json_name = "oneofIndex"];
     * @return The oneofIndex.
     */
    int getOneofIndex();

    /**
     * optional string json_name = 10 [json_name = "jsonName"];
     * @return Whether the jsonName field is set.
     */
    boolean hasJsonName();
    /**
     * optional string json_name = 10 [json_name = "jsonName"];
     * @return The jsonName.
     */
    java.lang.String getJsonName();
    /**
     * optional string json_name = 10 [json_name = "jsonName"];
     * @return The bytes for jsonName.
     */
    com.google.protobuf.ByteString
        getJsonNameBytes();

    /**
     * optional .google.protobuf.FieldOptions options = 8 [json_name = "options"];
     * @return Whether the options field is set.
     */
    boolean hasOptions();
    /**
     * optional .google.protobuf.FieldOptions options = 8 [json_name = "options"];
     * @return The options.
     */
    com.google.protobuf.DescriptorProtos.FieldOptions getOptions();

    /**
     * optional bool proto3_optional = 17 [json_name = "proto3Optional"];
     * @return Whether the proto3Optional field is set.
     */
    boolean hasProto3Optional();
    /**
     * optional bool proto3_optional = 17 [json_name = "proto3Optional"];
     * @return The proto3Optional.
     */
    boolean getProto3Optional();
  }
  /**
   * Protobuf type {@code google.protobuf.FieldDescriptorProto}
   */
  public  static final class FieldDescriptorProto extends
      com.google.protobuf.GeneratedMessageLite<
          FieldDescriptorProto, FieldDescriptorProto.Builder> implements
      // @@protoc_insertion_point(message_implements:google.protobuf.FieldDescriptorProto)
      FieldDescriptorProtoOrBuilder {
    private FieldDescriptorProto() {
      name_ = "";
      label_ = 1;
      type_ = 1;
      typeName_ = "";
      extendee_ = "";
      defaultValue_ = "";
      jsonName_ = "";
    }
    /**
     * Protobuf enum {@code google.protobuf.FieldDescriptorProto.Type}
     */
    public enum Type
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * TYPE_DOUBLE = 1;
       */
      TYPE_DOUBLE(1),
      /**
       * TYPE_FLOAT = 2;
       */
      TYPE_FLOAT(2),
      /**
       * TYPE_INT64 = 3;
       */
      TYPE_INT64(3),
      /**
       * TYPE_UINT64 = 4;
       */
      TYPE_UINT64(4),
      /**
       * TYPE_INT32 = 5;
       */
      TYPE_INT32(5),
      /**
       * TYPE_FIXED64 = 6;
       */
      TYPE_FIXED64(6),
      /**
       * TYPE_FIXED32 = 7;
       */
      TYPE_FIXED32(7),
      /**
       * TYPE_BOOL = 8;
       */
      TYPE_BOOL(8),
      /**
       * TYPE_STRING = 9;
       */
      TYPE_STRING(9),
      /**
       * TYPE_GROUP = 10;
       */
      TYPE_GROUP(10),
      /**
       * TYPE_MESSAGE = 11;
       */
      TYPE_MESSAGE(11),
      /**
       * TYPE_BYTES = 12;
       */
      TYPE_BYTES(12),
      /**
       * TYPE_UINT32 = 13;
       */
      TYPE_UINT32(13),
      /**
       * TYPE_ENUM = 14;
       */
      TYPE_ENUM(14),
      /**
       * TYPE_SFIXED32 = 15;
       */
      TYPE_SFIXED32(15),
      /**
       * TYPE_SFIXED64 = 16;
       */
      TYPE_SFIXED64(16),
      /**
       * TYPE_SINT32 = 17;
       */
      TYPE_SINT32(17),
      /**
       * TYPE_SINT64 = 18;
       */
      TYPE_SINT64(18),
      ;

      /**
       * TYPE_DOUBLE = 1;
       */
      public static final int TYPE_DOUBLE_VALUE = 1;
      /**
       * TYPE_FLOAT = 2;
       */
      public static final int TYPE_FLOAT_VALUE = 2;
      /**
       * TYPE_INT64 = 3;
       */
      public static final int TYPE_INT64_VALUE = 3;
      /**
       * TYPE_UINT64 = 4;
       */
      public static final int TYPE_UINT64_VALUE = 4;
      /**
       * TYPE_INT32 = 5;
       */
      public static final int TYPE_INT32_VALUE = 5;
      /**
       * TYPE_FIXED64 = 6;
       */
      public static final int TYPE_FIXED64_VALUE = 6;
      /**
       * TYPE_FIXED32 = 7;
       */
      public static final int TYPE_FIXED32_VALUE = 7;
      /**
       * TYPE_BOOL = 8;
       */
      public static final int TYPE_BOOL_VALUE = 8;
      /**
       * TYPE_STRING = 9;
       */
      public static final int TYPE_STRING_VALUE = 9;
      /**
       * TYPE_GROUP = 10;
       */
      public static final int TYPE_GROUP_VALUE = 10;
      /**
       * TYPE_MESSAGE = 11;
       */
      public static final int TYPE_MESSAGE_VALUE = 11;
      /**
       * TYPE_BYTES = 12;
       */
      public static final int TYPE_BYTES_VALUE = 12;
      /**
       * TYPE_UINT32 = 13;
       */
      public static final int TYPE_UINT32_VALUE = 13;
      /**
       * TYPE_ENUM = 14;
       */
      public static final int TYPE_ENUM_VALUE = 14;
      /**
       * TYPE_SFIXED32 = 15;
       */
      public static final int TYPE_SFIXED32_VALUE = 15;
      /**
       * TYPE_SFIXED64 = 16;
       */
      public static final int TYPE_SFIXED64_VALUE = 16;
      /**
       * TYPE_SINT32 = 17;
       */
      public static final int TYPE_SINT32_VALUE = 17;
      /**
       * TYPE_SINT64 = 18;
       */
      public static final int TYPE_SINT64_VALUE = 18;


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

      public static Type forNumber(int value) {
        switch (value) {
          case 1: return TYPE_DOUBLE;
          case 2: return TYPE_FLOAT;
          case 3: return TYPE_INT64;
          case 4: return TYPE_UINT64;
          case 5: return TYPE_INT32;
          case 6: return TYPE_FIXED64;
          case 7: return TYPE_FIXED32;
          case 8: return TYPE_BOOL;
          case 9: return TYPE_STRING;
          case 10: return TYPE_GROUP;
          case 11: return TYPE_MESSAGE;
          case 12: return TYPE_BYTES;
          case 13: return TYPE_UINT32;
          case 14: return TYPE_ENUM;
          case 15: return TYPE_SFIXED32;
          case 16: return TYPE_SFIXED64;
          case 17: return TYPE_SINT32;
          case 18: return TYPE_SINT64;
          default: return null;
        }
      }

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:google.protobuf.FieldDescriptorProto.Type)
    }

    /**
     * Protobuf enum {@code google.protobuf.FieldDescriptorProto.Label}
     */
    public enum Label
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * LABEL_OPTIONAL = 1;
       */
      LABEL_OPTIONAL(1),
      /**
       * LABEL_REPEATED = 3;
       */
      LABEL_REPEATED(3),
      /**
       * LABEL_REQUIRED = 2;
       */
      LABEL_REQUIRED(2),
      ;

      /**
       * LABEL_OPTIONAL = 1;
       */
      public static final int LABEL_OPTIONAL_VALUE = 1;
      /**
       * LABEL_REPEATED = 3;
       */
      public static final int LABEL_REPEATED_VALUE = 3;
      /**
       * LABEL_REQUIRED = 2;
       */
      public static final int LABEL_REQUIRED_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 Label valueOf(int value) {
        return forNumber(value);
      }

      public static Label forNumber(int value) {
        switch (value) {
          case 1: return LABEL_OPTIONAL;
          case 3: return LABEL_REPEATED;
          case 2: return LABEL_REQUIRED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap




© 2015 - 2024 Weber Informatics LLC | Privacy Policy