// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: core/deserialization/src/descriptors.debug.proto

package org.jetbrains.kotlin.serialization;

public final class DebugProtoBuf {
  private DebugProtoBuf() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code org.jetbrains.kotlin.serialization.Modality}
   */
  public enum Modality
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>FINAL = 0;</code>
     *
     * <pre>
     * 2 bits
     * </pre>
     */
    FINAL(0, 0),
    /**
     * <code>OPEN = 1;</code>
     */
    OPEN(1, 1),
    /**
     * <code>ABSTRACT = 2;</code>
     */
    ABSTRACT(2, 2),
    /**
     * <code>SEALED = 3;</code>
     */
    SEALED(3, 3),
    ;

    /**
     * <code>FINAL = 0;</code>
     *
     * <pre>
     * 2 bits
     * </pre>
     */
    public static final int FINAL_VALUE = 0;
    /**
     * <code>OPEN = 1;</code>
     */
    public static final int OPEN_VALUE = 1;
    /**
     * <code>ABSTRACT = 2;</code>
     */
    public static final int ABSTRACT_VALUE = 2;
    /**
     * <code>SEALED = 3;</code>
     */
    public static final int SEALED_VALUE = 3;


    public final int getNumber() { return value; }

    public static Modality valueOf(int value) {
      switch (value) {
        case 0: return FINAL;
        case 1: return OPEN;
        case 2: return ABSTRACT;
        case 3: return SEALED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Modality>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<Modality>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Modality>() {
            public Modality findValueByNumber(int number) {
              return Modality.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor().getEnumTypes().get(0);
    }

    private static final Modality[] VALUES = values();

    public static Modality valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Modality(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Modality)
  }

  /**
   * Protobuf enum {@code org.jetbrains.kotlin.serialization.Visibility}
   */
  public enum Visibility
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>INTERNAL = 0;</code>
     *
     * <pre>
     * 3 bits
     * </pre>
     */
    INTERNAL(0, 0),
    /**
     * <code>PRIVATE = 1;</code>
     */
    PRIVATE(1, 1),
    /**
     * <code>PROTECTED = 2;</code>
     */
    PROTECTED(2, 2),
    /**
     * <code>PUBLIC = 3;</code>
     */
    PUBLIC(3, 3),
    /**
     * <code>PRIVATE_TO_THIS = 4;</code>
     */
    PRIVATE_TO_THIS(4, 4),
    /**
     * <code>LOCAL = 5;</code>
     */
    LOCAL(5, 5),
    ;

    /**
     * <code>INTERNAL = 0;</code>
     *
     * <pre>
     * 3 bits
     * </pre>
     */
    public static final int INTERNAL_VALUE = 0;
    /**
     * <code>PRIVATE = 1;</code>
     */
    public static final int PRIVATE_VALUE = 1;
    /**
     * <code>PROTECTED = 2;</code>
     */
    public static final int PROTECTED_VALUE = 2;
    /**
     * <code>PUBLIC = 3;</code>
     */
    public static final int PUBLIC_VALUE = 3;
    /**
     * <code>PRIVATE_TO_THIS = 4;</code>
     */
    public static final int PRIVATE_TO_THIS_VALUE = 4;
    /**
     * <code>LOCAL = 5;</code>
     */
    public static final int LOCAL_VALUE = 5;


    public final int getNumber() { return value; }

    public static Visibility valueOf(int value) {
      switch (value) {
        case 0: return INTERNAL;
        case 1: return PRIVATE;
        case 2: return PROTECTED;
        case 3: return PUBLIC;
        case 4: return PRIVATE_TO_THIS;
        case 5: return LOCAL;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Visibility>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<Visibility>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Visibility>() {
            public Visibility findValueByNumber(int number) {
              return Visibility.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor().getEnumTypes().get(1);
    }

    private static final Visibility[] VALUES = values();

    public static Visibility valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Visibility(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Visibility)
  }

  public interface StringTableOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated string string = 1;
    /**
     * <code>repeated string string = 1;</code>
     */
    java.util.List<java.lang.String>
    getStringList();
    /**
     * <code>repeated string string = 1;</code>
     */
    int getStringCount();
    /**
     * <code>repeated string string = 1;</code>
     */
    java.lang.String getString(int index);
    /**
     * <code>repeated string string = 1;</code>
     */
    com.google.protobuf.ByteString
        getStringBytes(int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.StringTable}
   */
  public static final class StringTable extends
      com.google.protobuf.GeneratedMessage
      implements StringTableOrBuilder {
    // Use StringTable.newBuilder() to construct.
    private StringTable(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StringTable(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final StringTable defaultInstance;
    public static StringTable getDefaultInstance() {
      return defaultInstance;
    }

    public StringTable getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StringTable(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                string_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              string_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          string_ = new com.google.protobuf.UnmodifiableLazyStringList(string_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_StringTable_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder.class);
    }

    public static com.google.protobuf.Parser<StringTable> PARSER =
        new com.google.protobuf.AbstractParser<StringTable>() {
      public StringTable parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StringTable(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<StringTable> getParserForType() {
      return PARSER;
    }

    // repeated string string = 1;
    public static final int STRING_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList string_;
    /**
     * <code>repeated string string = 1;</code>
     */
    public java.util.List<java.lang.String>
        getStringList() {
      return string_;
    }
    /**
     * <code>repeated string string = 1;</code>
     */
    public int getStringCount() {
      return string_.size();
    }
    /**
     * <code>repeated string string = 1;</code>
     */
    public java.lang.String getString(int index) {
      return string_.get(index);
    }
    /**
     * <code>repeated string string = 1;</code>
     */
    public com.google.protobuf.ByteString
        getStringBytes(int index) {
      return string_.getByteString(index);
    }

    private void initFields() {
      string_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < string_.size(); i++) {
        output.writeBytes(1, string_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < string_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(string_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getStringList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.StringTable}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_StringTable_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        string_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          string_ = new com.google.protobuf.UnmodifiableLazyStringList(
              string_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.string_ = string_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance()) return this;
        if (!other.string_.isEmpty()) {
          if (string_.isEmpty()) {
            string_ = other.string_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStringIsMutable();
            string_.addAll(other.string_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated string string = 1;
      private com.google.protobuf.LazyStringList string_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureStringIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          string_ = new com.google.protobuf.LazyStringArrayList(string_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public java.util.List<java.lang.String>
          getStringList() {
        return java.util.Collections.unmodifiableList(string_);
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public int getStringCount() {
        return string_.size();
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public java.lang.String getString(int index) {
        return string_.get(index);
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public com.google.protobuf.ByteString
          getStringBytes(int index) {
        return string_.getByteString(index);
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public Builder setString(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureStringIsMutable();
        string_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public Builder addString(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureStringIsMutable();
        string_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public Builder addAllString(
          java.lang.Iterable<java.lang.String> values) {
        ensureStringIsMutable();
        super.addAll(values, string_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public Builder clearString() {
        string_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string string = 1;</code>
       */
      public Builder addStringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureStringIsMutable();
        string_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.StringTable)
    }

    static {
      defaultInstance = new StringTable(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.StringTable)
  }

  public interface QualifiedNameTableOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> 
        getQualifiedNameList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName getQualifiedName(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    int getQualifiedNameCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder> 
        getQualifiedNameOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder getQualifiedNameOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.QualifiedNameTable}
   */
  public static final class QualifiedNameTable extends
      com.google.protobuf.GeneratedMessage
      implements QualifiedNameTableOrBuilder {
    // Use QualifiedNameTable.newBuilder() to construct.
    private QualifiedNameTable(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private QualifiedNameTable(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final QualifiedNameTable defaultInstance;
    public static QualifiedNameTable getDefaultInstance() {
      return defaultInstance;
    }

    public QualifiedNameTable getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private QualifiedNameTable(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                qualifiedName_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName>();
                mutable_bitField0_ |= 0x00000001;
              }
              qualifiedName_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          qualifiedName_ = java.util.Collections.unmodifiableList(qualifiedName_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder.class);
    }

    public static com.google.protobuf.Parser<QualifiedNameTable> PARSER =
        new com.google.protobuf.AbstractParser<QualifiedNameTable>() {
      public QualifiedNameTable parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new QualifiedNameTable(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<QualifiedNameTable> getParserForType() {
      return PARSER;
    }

    public interface QualifiedNameOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 parent_qualified_name = 1 [default = -1];
      /**
       * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
       */
      boolean hasParentQualifiedName();
      /**
       * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
       */
      int getParentQualifiedName();

      // required int32 short_name = 2;
      /**
       * <code>required int32 short_name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      boolean hasShortName();
      /**
       * <code>required int32 short_name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      int getShortName();

      // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
       */
      boolean hasKind();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind getKind();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName}
     */
    public static final class QualifiedName extends
        com.google.protobuf.GeneratedMessage
        implements QualifiedNameOrBuilder {
      // Use QualifiedName.newBuilder() to construct.
      private QualifiedName(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private QualifiedName(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final QualifiedName defaultInstance;
      public static QualifiedName getDefaultInstance() {
        return defaultInstance;
      }

      public QualifiedName getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private QualifiedName(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                parentQualifiedName_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                shortName_ = input.readInt32();
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind value = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  bitField0_ |= 0x00000004;
                  kind_ = value;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder.class);
      }

      public static com.google.protobuf.Parser<QualifiedName> PARSER =
          new com.google.protobuf.AbstractParser<QualifiedName>() {
        public QualifiedName parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new QualifiedName(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<QualifiedName> getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind}
       */
      public enum Kind
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>CLASS = 0;</code>
         */
        CLASS(0, 0),
        /**
         * <code>PACKAGE = 1;</code>
         */
        PACKAGE(1, 1),
        /**
         * <code>LOCAL = 2;</code>
         */
        LOCAL(2, 2),
        ;

        /**
         * <code>CLASS = 0;</code>
         */
        public static final int CLASS_VALUE = 0;
        /**
         * <code>PACKAGE = 1;</code>
         */
        public static final int PACKAGE_VALUE = 1;
        /**
         * <code>LOCAL = 2;</code>
         */
        public static final int LOCAL_VALUE = 2;


        public final int getNumber() { return value; }

        public static Kind valueOf(int value) {
          switch (value) {
            case 0: return CLASS;
            case 1: return PACKAGE;
            case 2: return LOCAL;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<Kind>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap<Kind>
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Kind>() {
                public Kind findValueByNumber(int number) {
                  return Kind.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.getDescriptor().getEnumTypes().get(0);
        }

        private static final Kind[] VALUES = values();

        public static Kind valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private Kind(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind)
      }

      private int bitField0_;
      // optional int32 parent_qualified_name = 1 [default = -1];
      public static final int PARENT_QUALIFIED_NAME_FIELD_NUMBER = 1;
      private int parentQualifiedName_;
      /**
       * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
       */
      public boolean hasParentQualifiedName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
       */
      public int getParentQualifiedName() {
        return parentQualifiedName_;
      }

      // required int32 short_name = 2;
      public static final int SHORT_NAME_FIELD_NUMBER = 2;
      private int shortName_;
      /**
       * <code>required int32 short_name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public boolean hasShortName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 short_name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public int getShortName() {
        return shortName_;
      }

      // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];
      public static final int KIND_FIELD_NUMBER = 3;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind kind_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind getKind() {
        return kind_;
      }

      private void initFields() {
        parentQualifiedName_ = -1;
        shortName_ = 0;
        kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind.PACKAGE;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasShortName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, parentQualifiedName_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, shortName_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeEnum(3, kind_.getNumber());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, parentQualifiedName_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, shortName_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, kind_.getNumber());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          parentQualifiedName_ = -1;
          bitField0_ = (bitField0_ & ~0x00000001);
          shortName_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind.PACKAGE;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.parentQualifiedName_ = parentQualifiedName_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.shortName_ = shortName_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.kind_ = kind_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.getDefaultInstance()) return this;
          if (other.hasParentQualifiedName()) {
            setParentQualifiedName(other.getParentQualifiedName());
          }
          if (other.hasShortName()) {
            setShortName(other.getShortName());
          }
          if (other.hasKind()) {
            setKind(other.getKind());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasShortName()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 parent_qualified_name = 1 [default = -1];
        private int parentQualifiedName_ = -1;
        /**
         * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
         */
        public boolean hasParentQualifiedName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
         */
        public int getParentQualifiedName() {
          return parentQualifiedName_;
        }
        /**
         * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
         */
        public Builder setParentQualifiedName(int value) {
          bitField0_ |= 0x00000001;
          parentQualifiedName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 parent_qualified_name = 1 [default = -1];</code>
         */
        public Builder clearParentQualifiedName() {
          bitField0_ = (bitField0_ & ~0x00000001);
          parentQualifiedName_ = -1;
          onChanged();
          return this;
        }

        // required int32 short_name = 2;
        private int shortName_ ;
        /**
         * <code>required int32 short_name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public boolean hasShortName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int32 short_name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public int getShortName() {
          return shortName_;
        }
        /**
         * <code>required int32 short_name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public Builder setShortName(int value) {
          bitField0_ |= 0x00000002;
          shortName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 short_name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public Builder clearShortName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          shortName_ = 0;
          onChanged();
          return this;
        }

        // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind.PACKAGE;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
         */
        public boolean hasKind() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind getKind() {
          return kind_;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
         */
        public Builder setKind(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          kind_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName.Kind kind = 3 [default = PACKAGE];</code>
         */
        public Builder clearKind() {
          bitField0_ = (bitField0_ & ~0x00000004);
          kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Kind.PACKAGE;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName)
      }

      static {
        defaultInstance = new QualifiedName(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName)
    }

    // repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;
    public static final int QUALIFIED_NAME_FIELD_NUMBER = 1;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> qualifiedName_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> getQualifiedNameList() {
      return qualifiedName_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder> 
        getQualifiedNameOrBuilderList() {
      return qualifiedName_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    public int getQualifiedNameCount() {
      return qualifiedName_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName getQualifiedName(int index) {
      return qualifiedName_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder getQualifiedNameOrBuilder(
        int index) {
      return qualifiedName_.get(index);
    }

    private void initFields() {
      qualifiedName_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getQualifiedNameCount(); i++) {
        if (!getQualifiedName(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < qualifiedName_.size(); i++) {
        output.writeMessage(1, qualifiedName_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < qualifiedName_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, qualifiedName_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.QualifiedNameTable}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getQualifiedNameFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (qualifiedNameBuilder_ == null) {
          qualifiedName_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          qualifiedNameBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable(this);
        int from_bitField0_ = bitField0_;
        if (qualifiedNameBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            qualifiedName_ = java.util.Collections.unmodifiableList(qualifiedName_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.qualifiedName_ = qualifiedName_;
        } else {
          result.qualifiedName_ = qualifiedNameBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance()) return this;
        if (qualifiedNameBuilder_ == null) {
          if (!other.qualifiedName_.isEmpty()) {
            if (qualifiedName_.isEmpty()) {
              qualifiedName_ = other.qualifiedName_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureQualifiedNameIsMutable();
              qualifiedName_.addAll(other.qualifiedName_);
            }
            onChanged();
          }
        } else {
          if (!other.qualifiedName_.isEmpty()) {
            if (qualifiedNameBuilder_.isEmpty()) {
              qualifiedNameBuilder_.dispose();
              qualifiedNameBuilder_ = null;
              qualifiedName_ = other.qualifiedName_;
              bitField0_ = (bitField0_ & ~0x00000001);
              qualifiedNameBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getQualifiedNameFieldBuilder() : null;
            } else {
              qualifiedNameBuilder_.addAllMessages(other.qualifiedName_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getQualifiedNameCount(); i++) {
          if (!getQualifiedName(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> qualifiedName_ =
        java.util.Collections.emptyList();
      private void ensureQualifiedNameIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          qualifiedName_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName>(qualifiedName_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder> qualifiedNameBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> getQualifiedNameList() {
        if (qualifiedNameBuilder_ == null) {
          return java.util.Collections.unmodifiableList(qualifiedName_);
        } else {
          return qualifiedNameBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public int getQualifiedNameCount() {
        if (qualifiedNameBuilder_ == null) {
          return qualifiedName_.size();
        } else {
          return qualifiedNameBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName getQualifiedName(int index) {
        if (qualifiedNameBuilder_ == null) {
          return qualifiedName_.get(index);
        } else {
          return qualifiedNameBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder setQualifiedName(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName value) {
        if (qualifiedNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQualifiedNameIsMutable();
          qualifiedName_.set(index, value);
          onChanged();
        } else {
          qualifiedNameBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder setQualifiedName(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder builderForValue) {
        if (qualifiedNameBuilder_ == null) {
          ensureQualifiedNameIsMutable();
          qualifiedName_.set(index, builderForValue.build());
          onChanged();
        } else {
          qualifiedNameBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder addQualifiedName(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName value) {
        if (qualifiedNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQualifiedNameIsMutable();
          qualifiedName_.add(value);
          onChanged();
        } else {
          qualifiedNameBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder addQualifiedName(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName value) {
        if (qualifiedNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQualifiedNameIsMutable();
          qualifiedName_.add(index, value);
          onChanged();
        } else {
          qualifiedNameBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder addQualifiedName(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder builderForValue) {
        if (qualifiedNameBuilder_ == null) {
          ensureQualifiedNameIsMutable();
          qualifiedName_.add(builderForValue.build());
          onChanged();
        } else {
          qualifiedNameBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder addQualifiedName(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder builderForValue) {
        if (qualifiedNameBuilder_ == null) {
          ensureQualifiedNameIsMutable();
          qualifiedName_.add(index, builderForValue.build());
          onChanged();
        } else {
          qualifiedNameBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder addAllQualifiedName(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName> values) {
        if (qualifiedNameBuilder_ == null) {
          ensureQualifiedNameIsMutable();
          super.addAll(values, qualifiedName_);
          onChanged();
        } else {
          qualifiedNameBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder clearQualifiedName() {
        if (qualifiedNameBuilder_ == null) {
          qualifiedName_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          qualifiedNameBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public Builder removeQualifiedName(int index) {
        if (qualifiedNameBuilder_ == null) {
          ensureQualifiedNameIsMutable();
          qualifiedName_.remove(index);
          onChanged();
        } else {
          qualifiedNameBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder getQualifiedNameBuilder(
          int index) {
        return getQualifiedNameFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder getQualifiedNameOrBuilder(
          int index) {
        if (qualifiedNameBuilder_ == null) {
          return qualifiedName_.get(index);  } else {
          return qualifiedNameBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder> 
           getQualifiedNameOrBuilderList() {
        if (qualifiedNameBuilder_ != null) {
          return qualifiedNameBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(qualifiedName_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder addQualifiedNameBuilder() {
        return getQualifiedNameFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder addQualifiedNameBuilder(
          int index) {
        return getQualifiedNameFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.QualifiedNameTable.QualifiedName qualified_name = 1;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder> 
           getQualifiedNameBuilderList() {
        return getQualifiedNameFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder> 
          getQualifiedNameFieldBuilder() {
        if (qualifiedNameBuilder_ == null) {
          qualifiedNameBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedName.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.QualifiedNameOrBuilder>(
                  qualifiedName_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          qualifiedName_ = null;
        }
        return qualifiedNameBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.QualifiedNameTable)
    }

    static {
      defaultInstance = new QualifiedNameTable(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.QualifiedNameTable)
  }

  public interface AnnotationOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required int32 id = 1;
    /**
     * <code>required int32 id = 1;</code>
     *
     * <pre>
     * Class FQ name id
     * </pre>
     */
    boolean hasId();
    /**
     * <code>required int32 id = 1;</code>
     *
     * <pre>
     * Class FQ name id
     * </pre>
     */
    int getId();

    // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> 
        getArgumentList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument getArgument(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    int getArgumentCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder> 
        getArgumentOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder getArgumentOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation}
   */
  public static final class Annotation extends
      com.google.protobuf.GeneratedMessage
      implements AnnotationOrBuilder {
    // Use Annotation.newBuilder() to construct.
    private Annotation(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Annotation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Annotation defaultInstance;
    public static Annotation getDefaultInstance() {
      return defaultInstance;
    }

    public Annotation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Annotation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                argument_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument>();
                mutable_bitField0_ |= 0x00000002;
              }
              argument_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder.class);
    }

    public static com.google.protobuf.Parser<Annotation> PARSER =
        new com.google.protobuf.AbstractParser<Annotation>() {
      public Annotation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Annotation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Annotation> getParserForType() {
      return PARSER;
    }

    public interface ArgumentOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // required int32 name_id = 1;
      /**
       * <code>required int32 name_id = 1;</code>
       *
       * <pre>
       * id in StringTable
       * </pre>
       */
      boolean hasNameId();
      /**
       * <code>required int32 name_id = 1;</code>
       *
       * <pre>
       * id in StringTable
       * </pre>
       */
      int getNameId();

      // required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      boolean hasValue();
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getValue();
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getValueOrBuilder();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation.Argument}
     */
    public static final class Argument extends
        com.google.protobuf.GeneratedMessage
        implements ArgumentOrBuilder {
      // Use Argument.newBuilder() to construct.
      private Argument(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Argument(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Argument defaultInstance;
      public static Argument getDefaultInstance() {
        return defaultInstance;
      }

      public Argument getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Argument(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                nameId_ = input.readInt32();
                break;
              }
              case 18: {
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = value_.toBuilder();
                }
                value_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(value_);
                  value_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder.class);
      }

      public static com.google.protobuf.Parser<Argument> PARSER =
          new com.google.protobuf.AbstractParser<Argument>() {
        public Argument parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Argument(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<Argument> getParserForType() {
        return PARSER;
      }

      public interface ValueOrBuilder
          extends com.google.protobuf.MessageOrBuilder {

        // optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
         *
         * <pre>
         * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
         * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
         * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
         * </pre>
         */
        boolean hasType();
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
         *
         * <pre>
         * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
         * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
         * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
         * </pre>
         */
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type getType();

        // optional sint64 int_value = 2;
        /**
         * <code>optional sint64 int_value = 2;</code>
         */
        boolean hasIntValue();
        /**
         * <code>optional sint64 int_value = 2;</code>
         */
        long getIntValue();

        // optional float float_value = 3;
        /**
         * <code>optional float float_value = 3;</code>
         */
        boolean hasFloatValue();
        /**
         * <code>optional float float_value = 3;</code>
         */
        float getFloatValue();

        // optional double double_value = 4;
        /**
         * <code>optional double double_value = 4;</code>
         */
        boolean hasDoubleValue();
        /**
         * <code>optional double double_value = 4;</code>
         */
        double getDoubleValue();

        // optional int32 string_value = 5;
        /**
         * <code>optional int32 string_value = 5;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        boolean hasStringValue();
        /**
         * <code>optional int32 string_value = 5;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        int getStringValue();

        // optional int32 class_id = 6;
        /**
         * <code>optional int32 class_id = 6;</code>
         *
         * <pre>
         * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
         * </pre>
         */
        boolean hasClassId();
        /**
         * <code>optional int32 class_id = 6;</code>
         *
         * <pre>
         * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
         * </pre>
         */
        int getClassId();

        // optional int32 enum_value_id = 7;
        /**
         * <code>optional int32 enum_value_id = 7;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        boolean hasEnumValueId();
        /**
         * <code>optional int32 enum_value_id = 7;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        int getEnumValueId();

        // optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        boolean hasAnnotation();
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation getAnnotation();
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder getAnnotationOrBuilder();

        // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> 
            getArrayElementList();
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getArrayElement(int index);
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        int getArrayElementCount();
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> 
            getArrayElementOrBuilderList();
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getArrayElementOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation.Argument.Value}
       */
      public static final class Value extends
          com.google.protobuf.GeneratedMessage
          implements ValueOrBuilder {
        // Use Value.newBuilder() to construct.
        private Value(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private Value(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final Value defaultInstance;
        public static Value getDefaultInstance() {
          return defaultInstance;
        }

        public Value getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private Value(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  int rawValue = input.readEnum();
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type value = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type.valueOf(rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(1, rawValue);
                  } else {
                    bitField0_ |= 0x00000001;
                    type_ = value;
                  }
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  intValue_ = input.readSInt64();
                  break;
                }
                case 29: {
                  bitField0_ |= 0x00000004;
                  floatValue_ = input.readFloat();
                  break;
                }
                case 33: {
                  bitField0_ |= 0x00000008;
                  doubleValue_ = input.readDouble();
                  break;
                }
                case 40: {
                  bitField0_ |= 0x00000010;
                  stringValue_ = input.readInt32();
                  break;
                }
                case 48: {
                  bitField0_ |= 0x00000020;
                  classId_ = input.readInt32();
                  break;
                }
                case 56: {
                  bitField0_ |= 0x00000040;
                  enumValueId_ = input.readInt32();
                  break;
                }
                case 66: {
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder subBuilder = null;
                  if (((bitField0_ & 0x00000080) == 0x00000080)) {
                    subBuilder = annotation_.toBuilder();
                  }
                  annotation_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.PARSER, extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom(annotation_);
                    annotation_ = subBuilder.buildPartial();
                  }
                  bitField0_ |= 0x00000080;
                  break;
                }
                case 74: {
                  if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                    arrayElement_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value>();
                    mutable_bitField0_ |= 0x00000100;
                  }
                  arrayElement_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.PARSER, extensionRegistry));
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
              arrayElement_ = java.util.Collections.unmodifiableList(arrayElement_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder.class);
        }

        public static com.google.protobuf.Parser<Value> PARSER =
            new com.google.protobuf.AbstractParser<Value>() {
          public Value parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Value(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<Value> getParserForType() {
          return PARSER;
        }

        /**
         * Protobuf enum {@code org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type}
         */
        public enum Type
            implements com.google.protobuf.ProtocolMessageEnum {
          /**
           * <code>BYTE = 0;</code>
           */
          BYTE(0, 0),
          /**
           * <code>CHAR = 1;</code>
           */
          CHAR(1, 1),
          /**
           * <code>SHORT = 2;</code>
           */
          SHORT(2, 2),
          /**
           * <code>INT = 3;</code>
           */
          INT(3, 3),
          /**
           * <code>LONG = 4;</code>
           */
          LONG(4, 4),
          /**
           * <code>FLOAT = 5;</code>
           */
          FLOAT(5, 5),
          /**
           * <code>DOUBLE = 6;</code>
           */
          DOUBLE(6, 6),
          /**
           * <code>BOOLEAN = 7;</code>
           */
          BOOLEAN(7, 7),
          /**
           * <code>STRING = 8;</code>
           */
          STRING(8, 8),
          /**
           * <code>CLASS = 9;</code>
           */
          CLASS(9, 9),
          /**
           * <code>ENUM = 10;</code>
           */
          ENUM(10, 10),
          /**
           * <code>ANNOTATION = 11;</code>
           */
          ANNOTATION(11, 11),
          /**
           * <code>ARRAY = 12;</code>
           */
          ARRAY(12, 12),
          ;

          /**
           * <code>BYTE = 0;</code>
           */
          public static final int BYTE_VALUE = 0;
          /**
           * <code>CHAR = 1;</code>
           */
          public static final int CHAR_VALUE = 1;
          /**
           * <code>SHORT = 2;</code>
           */
          public static final int SHORT_VALUE = 2;
          /**
           * <code>INT = 3;</code>
           */
          public static final int INT_VALUE = 3;
          /**
           * <code>LONG = 4;</code>
           */
          public static final int LONG_VALUE = 4;
          /**
           * <code>FLOAT = 5;</code>
           */
          public static final int FLOAT_VALUE = 5;
          /**
           * <code>DOUBLE = 6;</code>
           */
          public static final int DOUBLE_VALUE = 6;
          /**
           * <code>BOOLEAN = 7;</code>
           */
          public static final int BOOLEAN_VALUE = 7;
          /**
           * <code>STRING = 8;</code>
           */
          public static final int STRING_VALUE = 8;
          /**
           * <code>CLASS = 9;</code>
           */
          public static final int CLASS_VALUE = 9;
          /**
           * <code>ENUM = 10;</code>
           */
          public static final int ENUM_VALUE = 10;
          /**
           * <code>ANNOTATION = 11;</code>
           */
          public static final int ANNOTATION_VALUE = 11;
          /**
           * <code>ARRAY = 12;</code>
           */
          public static final int ARRAY_VALUE = 12;


          public final int getNumber() { return value; }

          public static Type valueOf(int value) {
            switch (value) {
              case 0: return BYTE;
              case 1: return CHAR;
              case 2: return SHORT;
              case 3: return INT;
              case 4: return LONG;
              case 5: return FLOAT;
              case 6: return DOUBLE;
              case 7: return BOOLEAN;
              case 8: return STRING;
              case 9: return CLASS;
              case 10: return ENUM;
              case 11: return ANNOTATION;
              case 12: return ARRAY;
              default: return null;
            }
          }

          public static com.google.protobuf.Internal.EnumLiteMap<Type>
              internalGetValueMap() {
            return internalValueMap;
          }
          private static com.google.protobuf.Internal.EnumLiteMap<Type>
              internalValueMap =
                new com.google.protobuf.Internal.EnumLiteMap<Type>() {
                  public Type findValueByNumber(int number) {
                    return Type.valueOf(number);
                  }
                };

          public final com.google.protobuf.Descriptors.EnumValueDescriptor
              getValueDescriptor() {
            return getDescriptor().getValues().get(index);
          }
          public final com.google.protobuf.Descriptors.EnumDescriptor
              getDescriptorForType() {
            return getDescriptor();
          }
          public static final com.google.protobuf.Descriptors.EnumDescriptor
              getDescriptor() {
            return org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDescriptor().getEnumTypes().get(0);
          }

          private static final Type[] VALUES = values();

          public static Type valueOf(
              com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
              throw new java.lang.IllegalArgumentException(
                "EnumValueDescriptor is not for this type.");
            }
            return VALUES[desc.getIndex()];
          }

          private final int index;
          private final int value;

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

          // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type)
        }

        private int bitField0_;
        // optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;
        public static final int TYPE_FIELD_NUMBER = 1;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type type_;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
         *
         * <pre>
         * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
         * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
         * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
         * </pre>
         */
        public boolean hasType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
         *
         * <pre>
         * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
         * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
         * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type getType() {
          return type_;
        }

        // optional sint64 int_value = 2;
        public static final int INT_VALUE_FIELD_NUMBER = 2;
        private long intValue_;
        /**
         * <code>optional sint64 int_value = 2;</code>
         */
        public boolean hasIntValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional sint64 int_value = 2;</code>
         */
        public long getIntValue() {
          return intValue_;
        }

        // optional float float_value = 3;
        public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
        private float floatValue_;
        /**
         * <code>optional float float_value = 3;</code>
         */
        public boolean hasFloatValue() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional float float_value = 3;</code>
         */
        public float getFloatValue() {
          return floatValue_;
        }

        // optional double double_value = 4;
        public static final int DOUBLE_VALUE_FIELD_NUMBER = 4;
        private double doubleValue_;
        /**
         * <code>optional double double_value = 4;</code>
         */
        public boolean hasDoubleValue() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional double double_value = 4;</code>
         */
        public double getDoubleValue() {
          return doubleValue_;
        }

        // optional int32 string_value = 5;
        public static final int STRING_VALUE_FIELD_NUMBER = 5;
        private int stringValue_;
        /**
         * <code>optional int32 string_value = 5;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public boolean hasStringValue() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional int32 string_value = 5;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public int getStringValue() {
          return stringValue_;
        }

        // optional int32 class_id = 6;
        public static final int CLASS_ID_FIELD_NUMBER = 6;
        private int classId_;
        /**
         * <code>optional int32 class_id = 6;</code>
         *
         * <pre>
         * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
         * </pre>
         */
        public boolean hasClassId() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional int32 class_id = 6;</code>
         *
         * <pre>
         * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
         * </pre>
         */
        public int getClassId() {
          return classId_;
        }

        // optional int32 enum_value_id = 7;
        public static final int ENUM_VALUE_ID_FIELD_NUMBER = 7;
        private int enumValueId_;
        /**
         * <code>optional int32 enum_value_id = 7;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public boolean hasEnumValueId() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional int32 enum_value_id = 7;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public int getEnumValueId() {
          return enumValueId_;
        }

        // optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;
        public static final int ANNOTATION_FIELD_NUMBER = 8;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation annotation_;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        public boolean hasAnnotation() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation getAnnotation() {
          return annotation_;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder getAnnotationOrBuilder() {
          return annotation_;
        }

        // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;
        public static final int ARRAY_ELEMENT_FIELD_NUMBER = 9;
        private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> arrayElement_;
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> getArrayElementList() {
          return arrayElement_;
        }
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> 
            getArrayElementOrBuilderList() {
          return arrayElement_;
        }
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        public int getArrayElementCount() {
          return arrayElement_.size();
        }
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getArrayElement(int index) {
          return arrayElement_.get(index);
        }
        /**
         * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getArrayElementOrBuilder(
            int index) {
          return arrayElement_.get(index);
        }

        private void initFields() {
          type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type.BYTE;
          intValue_ = 0L;
          floatValue_ = 0F;
          doubleValue_ = 0D;
          stringValue_ = 0;
          classId_ = 0;
          enumValueId_ = 0;
          annotation_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance();
          arrayElement_ = java.util.Collections.emptyList();
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          if (hasAnnotation()) {
            if (!getAnnotation().isInitialized()) {
              memoizedIsInitialized = 0;
              return false;
            }
          }
          for (int i = 0; i < getArrayElementCount(); i++) {
            if (!getArrayElement(i).isInitialized()) {
              memoizedIsInitialized = 0;
              return false;
            }
          }
          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeEnum(1, type_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeSInt64(2, intValue_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeFloat(3, floatValue_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeDouble(4, doubleValue_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeInt32(5, stringValue_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            output.writeInt32(6, classId_);
          }
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            output.writeInt32(7, enumValueId_);
          }
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            output.writeMessage(8, annotation_);
          }
          for (int i = 0; i < arrayElement_.size(); i++) {
            output.writeMessage(9, arrayElement_.get(i));
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, type_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeSInt64Size(2, intValue_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeFloatSize(3, floatValue_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeDoubleSize(4, doubleValue_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(5, stringValue_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(6, classId_);
          }
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(7, enumValueId_);
          }
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(8, annotation_);
          }
          for (int i = 0; i < arrayElement_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(9, arrayElement_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation.Argument.Value}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder.class);
          }

          // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getAnnotationFieldBuilder();
              getArrayElementFieldBuilder();
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type.BYTE;
            bitField0_ = (bitField0_ & ~0x00000001);
            intValue_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000002);
            floatValue_ = 0F;
            bitField0_ = (bitField0_ & ~0x00000004);
            doubleValue_ = 0D;
            bitField0_ = (bitField0_ & ~0x00000008);
            stringValue_ = 0;
            bitField0_ = (bitField0_ & ~0x00000010);
            classId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000020);
            enumValueId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000040);
            if (annotationBuilder_ == null) {
              annotation_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance();
            } else {
              annotationBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000080);
            if (arrayElementBuilder_ == null) {
              arrayElement_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              arrayElementBuilder_.clear();
            }
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor;
          }

          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getDefaultInstanceForType() {
            return org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance();
          }

          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value build() {
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value buildPartial() {
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.type_ = type_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.intValue_ = intValue_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.floatValue_ = floatValue_;
            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
              to_bitField0_ |= 0x00000008;
            }
            result.doubleValue_ = doubleValue_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000010;
            }
            result.stringValue_ = stringValue_;
            if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
              to_bitField0_ |= 0x00000020;
            }
            result.classId_ = classId_;
            if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
              to_bitField0_ |= 0x00000040;
            }
            result.enumValueId_ = enumValueId_;
            if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
              to_bitField0_ |= 0x00000080;
            }
            if (annotationBuilder_ == null) {
              result.annotation_ = annotation_;
            } else {
              result.annotation_ = annotationBuilder_.build();
            }
            if (arrayElementBuilder_ == null) {
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                arrayElement_ = java.util.Collections.unmodifiableList(arrayElement_);
                bitField0_ = (bitField0_ & ~0x00000100);
              }
              result.arrayElement_ = arrayElement_;
            } else {
              result.arrayElement_ = arrayElementBuilder_.build();
            }
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value) {
              return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value other) {
            if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance()) return this;
            if (other.hasType()) {
              setType(other.getType());
            }
            if (other.hasIntValue()) {
              setIntValue(other.getIntValue());
            }
            if (other.hasFloatValue()) {
              setFloatValue(other.getFloatValue());
            }
            if (other.hasDoubleValue()) {
              setDoubleValue(other.getDoubleValue());
            }
            if (other.hasStringValue()) {
              setStringValue(other.getStringValue());
            }
            if (other.hasClassId()) {
              setClassId(other.getClassId());
            }
            if (other.hasEnumValueId()) {
              setEnumValueId(other.getEnumValueId());
            }
            if (other.hasAnnotation()) {
              mergeAnnotation(other.getAnnotation());
            }
            if (arrayElementBuilder_ == null) {
              if (!other.arrayElement_.isEmpty()) {
                if (arrayElement_.isEmpty()) {
                  arrayElement_ = other.arrayElement_;
                  bitField0_ = (bitField0_ & ~0x00000100);
                } else {
                  ensureArrayElementIsMutable();
                  arrayElement_.addAll(other.arrayElement_);
                }
                onChanged();
              }
            } else {
              if (!other.arrayElement_.isEmpty()) {
                if (arrayElementBuilder_.isEmpty()) {
                  arrayElementBuilder_.dispose();
                  arrayElementBuilder_ = null;
                  arrayElement_ = other.arrayElement_;
                  bitField0_ = (bitField0_ & ~0x00000100);
                  arrayElementBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getArrayElementFieldBuilder() : null;
                } else {
                  arrayElementBuilder_.addAllMessages(other.arrayElement_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            if (hasAnnotation()) {
              if (!getAnnotation().isInitialized()) {
                
                return false;
              }
            }
            for (int i = 0; i < getArrayElementCount(); i++) {
              if (!getArrayElement(i).isInitialized()) {
                
                return false;
              }
            }
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;
          private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type.BYTE;
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
           *
           * <pre>
           * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
           * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
           * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
           * </pre>
           */
          public boolean hasType() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
           *
           * <pre>
           * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
           * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
           * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
           * </pre>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type getType() {
            return type_;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
           *
           * <pre>
           * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
           * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
           * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
           * </pre>
           */
          public Builder setType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            type_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation.Argument.Value.Type type = 1;</code>
           *
           * <pre>
           * Note: a *Value* has a Type, not an Argument! This is done for future language features which may involve using arrays
           * of elements of different types. Such entries are allowed in the constant pool of JVM class files.
           * However, to save space, this field is optional: in case of homogeneous arrays, only the type of the first element is required
           * </pre>
           */
          public Builder clearType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Type.BYTE;
            onChanged();
            return this;
          }

          // optional sint64 int_value = 2;
          private long intValue_ ;
          /**
           * <code>optional sint64 int_value = 2;</code>
           */
          public boolean hasIntValue() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <code>optional sint64 int_value = 2;</code>
           */
          public long getIntValue() {
            return intValue_;
          }
          /**
           * <code>optional sint64 int_value = 2;</code>
           */
          public Builder setIntValue(long value) {
            bitField0_ |= 0x00000002;
            intValue_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional sint64 int_value = 2;</code>
           */
          public Builder clearIntValue() {
            bitField0_ = (bitField0_ & ~0x00000002);
            intValue_ = 0L;
            onChanged();
            return this;
          }

          // optional float float_value = 3;
          private float floatValue_ ;
          /**
           * <code>optional float float_value = 3;</code>
           */
          public boolean hasFloatValue() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * <code>optional float float_value = 3;</code>
           */
          public float getFloatValue() {
            return floatValue_;
          }
          /**
           * <code>optional float float_value = 3;</code>
           */
          public Builder setFloatValue(float value) {
            bitField0_ |= 0x00000004;
            floatValue_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional float float_value = 3;</code>
           */
          public Builder clearFloatValue() {
            bitField0_ = (bitField0_ & ~0x00000004);
            floatValue_ = 0F;
            onChanged();
            return this;
          }

          // optional double double_value = 4;
          private double doubleValue_ ;
          /**
           * <code>optional double double_value = 4;</code>
           */
          public boolean hasDoubleValue() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }
          /**
           * <code>optional double double_value = 4;</code>
           */
          public double getDoubleValue() {
            return doubleValue_;
          }
          /**
           * <code>optional double double_value = 4;</code>
           */
          public Builder setDoubleValue(double value) {
            bitField0_ |= 0x00000008;
            doubleValue_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional double double_value = 4;</code>
           */
          public Builder clearDoubleValue() {
            bitField0_ = (bitField0_ & ~0x00000008);
            doubleValue_ = 0D;
            onChanged();
            return this;
          }

          // optional int32 string_value = 5;
          private int stringValue_ ;
          /**
           * <code>optional int32 string_value = 5;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public boolean hasStringValue() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }
          /**
           * <code>optional int32 string_value = 5;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public int getStringValue() {
            return stringValue_;
          }
          /**
           * <code>optional int32 string_value = 5;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public Builder setStringValue(int value) {
            bitField0_ |= 0x00000010;
            stringValue_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 string_value = 5;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public Builder clearStringValue() {
            bitField0_ = (bitField0_ & ~0x00000010);
            stringValue_ = 0;
            onChanged();
            return this;
          }

          // optional int32 class_id = 6;
          private int classId_ ;
          /**
           * <code>optional int32 class_id = 6;</code>
           *
           * <pre>
           * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
           * </pre>
           */
          public boolean hasClassId() {
            return ((bitField0_ & 0x00000020) == 0x00000020);
          }
          /**
           * <code>optional int32 class_id = 6;</code>
           *
           * <pre>
           * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
           * </pre>
           */
          public int getClassId() {
            return classId_;
          }
          /**
           * <code>optional int32 class_id = 6;</code>
           *
           * <pre>
           * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
           * </pre>
           */
          public Builder setClassId(int value) {
            bitField0_ |= 0x00000020;
            classId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 class_id = 6;</code>
           *
           * <pre>
           * If type = CLASS, FQ name id of the referenced class; if type = ENUM, FQ name id of the enum class
           * </pre>
           */
          public Builder clearClassId() {
            bitField0_ = (bitField0_ & ~0x00000020);
            classId_ = 0;
            onChanged();
            return this;
          }

          // optional int32 enum_value_id = 7;
          private int enumValueId_ ;
          /**
           * <code>optional int32 enum_value_id = 7;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public boolean hasEnumValueId() {
            return ((bitField0_ & 0x00000040) == 0x00000040);
          }
          /**
           * <code>optional int32 enum_value_id = 7;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public int getEnumValueId() {
            return enumValueId_;
          }
          /**
           * <code>optional int32 enum_value_id = 7;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public Builder setEnumValueId(int value) {
            bitField0_ |= 0x00000040;
            enumValueId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 enum_value_id = 7;</code>
           *
           * <pre>
           * id in StringTable
           * </pre>
           */
          public Builder clearEnumValueId() {
            bitField0_ = (bitField0_ & ~0x00000040);
            enumValueId_ = 0;
            onChanged();
            return this;
          }

          // optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;
          private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation annotation_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance();
          private com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder> annotationBuilder_;
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public boolean hasAnnotation() {
            return ((bitField0_ & 0x00000080) == 0x00000080);
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation getAnnotation() {
            if (annotationBuilder_ == null) {
              return annotation_;
            } else {
              return annotationBuilder_.getMessage();
            }
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public Builder setAnnotation(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation value) {
            if (annotationBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              annotation_ = value;
              onChanged();
            } else {
              annotationBuilder_.setMessage(value);
            }
            bitField0_ |= 0x00000080;
            return this;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public Builder setAnnotation(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder builderForValue) {
            if (annotationBuilder_ == null) {
              annotation_ = builderForValue.build();
              onChanged();
            } else {
              annotationBuilder_.setMessage(builderForValue.build());
            }
            bitField0_ |= 0x00000080;
            return this;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public Builder mergeAnnotation(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation value) {
            if (annotationBuilder_ == null) {
              if (((bitField0_ & 0x00000080) == 0x00000080) &&
                  annotation_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance()) {
                annotation_ =
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.newBuilder(annotation_).mergeFrom(value).buildPartial();
              } else {
                annotation_ = value;
              }
              onChanged();
            } else {
              annotationBuilder_.mergeFrom(value);
            }
            bitField0_ |= 0x00000080;
            return this;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public Builder clearAnnotation() {
            if (annotationBuilder_ == null) {
              annotation_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance();
              onChanged();
            } else {
              annotationBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000080);
            return this;
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder getAnnotationBuilder() {
            bitField0_ |= 0x00000080;
            onChanged();
            return getAnnotationFieldBuilder().getBuilder();
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder getAnnotationOrBuilder() {
            if (annotationBuilder_ != null) {
              return annotationBuilder_.getMessageOrBuilder();
            } else {
              return annotation_;
            }
          }
          /**
           * <code>optional .org.jetbrains.kotlin.serialization.Annotation annotation = 8;</code>
           */
          private com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder> 
              getAnnotationFieldBuilder() {
            if (annotationBuilder_ == null) {
              annotationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder>(
                      annotation_,
                      getParentForChildren(),
                      isClean());
              annotation_ = null;
            }
            return annotationBuilder_;
          }

          // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;
          private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> arrayElement_ =
            java.util.Collections.emptyList();
          private void ensureArrayElementIsMutable() {
            if (!((bitField0_ & 0x00000100) == 0x00000100)) {
              arrayElement_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value>(arrayElement_);
              bitField0_ |= 0x00000100;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> arrayElementBuilder_;

          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> getArrayElementList() {
            if (arrayElementBuilder_ == null) {
              return java.util.Collections.unmodifiableList(arrayElement_);
            } else {
              return arrayElementBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public int getArrayElementCount() {
            if (arrayElementBuilder_ == null) {
              return arrayElement_.size();
            } else {
              return arrayElementBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getArrayElement(int index) {
            if (arrayElementBuilder_ == null) {
              return arrayElement_.get(index);
            } else {
              return arrayElementBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder setArrayElement(
              int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value) {
            if (arrayElementBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureArrayElementIsMutable();
              arrayElement_.set(index, value);
              onChanged();
            } else {
              arrayElementBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder setArrayElement(
              int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder builderForValue) {
            if (arrayElementBuilder_ == null) {
              ensureArrayElementIsMutable();
              arrayElement_.set(index, builderForValue.build());
              onChanged();
            } else {
              arrayElementBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder addArrayElement(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value) {
            if (arrayElementBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureArrayElementIsMutable();
              arrayElement_.add(value);
              onChanged();
            } else {
              arrayElementBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder addArrayElement(
              int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value) {
            if (arrayElementBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureArrayElementIsMutable();
              arrayElement_.add(index, value);
              onChanged();
            } else {
              arrayElementBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder addArrayElement(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder builderForValue) {
            if (arrayElementBuilder_ == null) {
              ensureArrayElementIsMutable();
              arrayElement_.add(builderForValue.build());
              onChanged();
            } else {
              arrayElementBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder addArrayElement(
              int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder builderForValue) {
            if (arrayElementBuilder_ == null) {
              ensureArrayElementIsMutable();
              arrayElement_.add(index, builderForValue.build());
              onChanged();
            } else {
              arrayElementBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder addAllArrayElement(
              java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> values) {
            if (arrayElementBuilder_ == null) {
              ensureArrayElementIsMutable();
              super.addAll(values, arrayElement_);
              onChanged();
            } else {
              arrayElementBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder clearArrayElement() {
            if (arrayElementBuilder_ == null) {
              arrayElement_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000100);
              onChanged();
            } else {
              arrayElementBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public Builder removeArrayElement(int index) {
            if (arrayElementBuilder_ == null) {
              ensureArrayElementIsMutable();
              arrayElement_.remove(index);
              onChanged();
            } else {
              arrayElementBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder getArrayElementBuilder(
              int index) {
            return getArrayElementFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getArrayElementOrBuilder(
              int index) {
            if (arrayElementBuilder_ == null) {
              return arrayElement_.get(index);  } else {
              return arrayElementBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> 
               getArrayElementOrBuilderList() {
            if (arrayElementBuilder_ != null) {
              return arrayElementBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(arrayElement_);
            }
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder addArrayElementBuilder() {
            return getArrayElementFieldBuilder().addBuilder(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder addArrayElementBuilder(
              int index) {
            return getArrayElementFieldBuilder().addBuilder(
                index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument.Value array_element = 9;</code>
           */
          public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder> 
               getArrayElementBuilderList() {
            return getArrayElementFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> 
              getArrayElementFieldBuilder() {
            if (arrayElementBuilder_ == null) {
              arrayElementBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder>(
                      arrayElement_,
                      ((bitField0_ & 0x00000100) == 0x00000100),
                      getParentForChildren(),
                      isClean());
              arrayElement_ = null;
            }
            return arrayElementBuilder_;
          }

          // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Annotation.Argument.Value)
        }

        static {
          defaultInstance = new Value(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Annotation.Argument.Value)
      }

      private int bitField0_;
      // required int32 name_id = 1;
      public static final int NAME_ID_FIELD_NUMBER = 1;
      private int nameId_;
      /**
       * <code>required int32 name_id = 1;</code>
       *
       * <pre>
       * id in StringTable
       * </pre>
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 name_id = 1;</code>
       *
       * <pre>
       * id in StringTable
       * </pre>
       */
      public int getNameId() {
        return nameId_;
      }

      // required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;
      public static final int VALUE_FIELD_NUMBER = 2;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value_;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getValue() {
        return value_;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getValueOrBuilder() {
        return value_;
      }

      private void initFields() {
        nameId_ = 0;
        value_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasNameId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasValue()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getValue().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, nameId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, value_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, nameId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, value_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation.Argument}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getValueFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          nameId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (valueBuilder_ == null) {
            value_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance();
          } else {
            valueBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.nameId_ = nameId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (valueBuilder_ == null) {
            result.value_ = value_;
          } else {
            result.value_ = valueBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.getDefaultInstance()) return this;
          if (other.hasNameId()) {
            setNameId(other.getNameId());
          }
          if (other.hasValue()) {
            mergeValue(other.getValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasNameId()) {
            
            return false;
          }
          if (!hasValue()) {
            
            return false;
          }
          if (!getValue().isInitialized()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // required int32 name_id = 1;
        private int nameId_ ;
        /**
         * <code>required int32 name_id = 1;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public boolean hasNameId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required int32 name_id = 1;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public int getNameId() {
          return nameId_;
        }
        /**
         * <code>required int32 name_id = 1;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public Builder setNameId(int value) {
          bitField0_ |= 0x00000001;
          nameId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 name_id = 1;</code>
         *
         * <pre>
         * id in StringTable
         * </pre>
         */
        public Builder clearNameId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          nameId_ = 0;
          onChanged();
          return this;
        }

        // required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> valueBuilder_;
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public boolean hasValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value getValue() {
          if (valueBuilder_ == null) {
            return value_;
          } else {
            return valueBuilder_.getMessage();
          }
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public Builder setValue(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value) {
          if (valueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            value_ = value;
            onChanged();
          } else {
            valueBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public Builder setValue(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder builderForValue) {
          if (valueBuilder_ == null) {
            value_ = builderForValue.build();
            onChanged();
          } else {
            valueBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public Builder mergeValue(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value value) {
          if (valueBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                value_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance()) {
              value_ =
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.newBuilder(value_).mergeFrom(value).buildPartial();
            } else {
              value_ = value;
            }
            onChanged();
          } else {
            valueBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public Builder clearValue() {
          if (valueBuilder_ == null) {
            value_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance();
            onChanged();
          } else {
            valueBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder getValueBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getValueFieldBuilder().getBuilder();
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder getValueOrBuilder() {
          if (valueBuilder_ != null) {
            return valueBuilder_.getMessageOrBuilder();
          } else {
            return value_;
          }
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Annotation.Argument.Value value = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder> 
            getValueFieldBuilder() {
          if (valueBuilder_ == null) {
            valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.ValueOrBuilder>(
                    value_,
                    getParentForChildren(),
                    isClean());
            value_ = null;
          }
          return valueBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Annotation.Argument)
      }

      static {
        defaultInstance = new Argument(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Annotation.Argument)
    }

    private int bitField0_;
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <code>required int32 id = 1;</code>
     *
     * <pre>
     * Class FQ name id
     * </pre>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 id = 1;</code>
     *
     * <pre>
     * Class FQ name id
     * </pre>
     */
    public int getId() {
      return id_;
    }

    // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;
    public static final int ARGUMENT_FIELD_NUMBER = 2;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> argument_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> getArgumentList() {
      return argument_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder> 
        getArgumentOrBuilderList() {
      return argument_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    public int getArgumentCount() {
      return argument_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument getArgument(int index) {
      return argument_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder getArgumentOrBuilder(
        int index) {
      return argument_.get(index);
    }

    private void initFields() {
      id_ = 0;
      argument_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getArgumentCount(); i++) {
        if (!getArgument(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, id_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        output.writeMessage(2, argument_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, argument_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Annotation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jetbrains.kotlin.serialization.DebugProtoBuf.AnnotationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getArgumentFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        id_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (argumentBuilder_ == null) {
          argument_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          argumentBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (argumentBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            argument_ = java.util.Collections.unmodifiableList(argument_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.argument_ = argument_;
        } else {
          result.argument_ = argumentBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (argumentBuilder_ == null) {
          if (!other.argument_.isEmpty()) {
            if (argument_.isEmpty()) {
              argument_ = other.argument_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureArgumentIsMutable();
              argument_.addAll(other.argument_);
            }
            onChanged();
          }
        } else {
          if (!other.argument_.isEmpty()) {
            if (argumentBuilder_.isEmpty()) {
              argumentBuilder_.dispose();
              argumentBuilder_ = null;
              argument_ = other.argument_;
              bitField0_ = (bitField0_ & ~0x00000002);
              argumentBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getArgumentFieldBuilder() : null;
            } else {
              argumentBuilder_.addAllMessages(other.argument_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasId()) {
          
          return false;
        }
        for (int i = 0; i < getArgumentCount(); i++) {
          if (!getArgument(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 id = 1;
      private int id_ ;
      /**
       * <code>required int32 id = 1;</code>
       *
       * <pre>
       * Class FQ name id
       * </pre>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 id = 1;</code>
       *
       * <pre>
       * Class FQ name id
       * </pre>
       */
      public int getId() {
        return id_;
      }
      /**
       * <code>required int32 id = 1;</code>
       *
       * <pre>
       * Class FQ name id
       * </pre>
       */
      public Builder setId(int value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 id = 1;</code>
       *
       * <pre>
       * Class FQ name id
       * </pre>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> argument_ =
        java.util.Collections.emptyList();
      private void ensureArgumentIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument>(argument_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder> argumentBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> getArgumentList() {
        if (argumentBuilder_ == null) {
          return java.util.Collections.unmodifiableList(argument_);
        } else {
          return argumentBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public int getArgumentCount() {
        if (argumentBuilder_ == null) {
          return argument_.size();
        } else {
          return argumentBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument getArgument(int index) {
        if (argumentBuilder_ == null) {
          return argument_.get(index);
        } else {
          return argumentBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.set(index, value);
          onChanged();
        } else {
          argumentBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.set(index, builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder addArgument(org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.add(value);
          onChanged();
        } else {
          argumentBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.add(index, value);
          onChanged();
        } else {
          argumentBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder addArgument(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.add(builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.add(index, builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder addAllArgument(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument> values) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          super.addAll(values, argument_);
          onChanged();
        } else {
          argumentBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder clearArgument() {
        if (argumentBuilder_ == null) {
          argument_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          argumentBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public Builder removeArgument(int index) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.remove(index);
          onChanged();
        } else {
          argumentBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder getArgumentBuilder(
          int index) {
        return getArgumentFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder getArgumentOrBuilder(
          int index) {
        if (argumentBuilder_ == null) {
          return argument_.get(index);  } else {
          return argumentBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder> 
           getArgumentOrBuilderList() {
        if (argumentBuilder_ != null) {
          return argumentBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(argument_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder addArgumentBuilder() {
        return getArgumentFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder addArgumentBuilder(
          int index) {
        return getArgumentFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Annotation.Argument argument = 2;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder> 
           getArgumentBuilderList() {
        return getArgumentFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder> 
          getArgumentFieldBuilder() {
        if (argumentBuilder_ == null) {
          argumentBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.ArgumentOrBuilder>(
                  argument_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          argument_ = null;
        }
        return argumentBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Annotation)
    }

    static {
      defaultInstance = new Annotation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Annotation)
  }

  public interface TypeOrBuilder extends
      com.google.protobuf.GeneratedMessage.
          ExtendableMessageOrBuilder<Type> {

    // required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    boolean hasConstructor();
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor getConstructor();
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder getConstructorOrBuilder();

    // repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> 
        getArgumentList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument getArgument(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    int getArgumentCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder> 
        getArgumentOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder getArgumentOrBuilder(
        int index);

    // optional bool nullable = 3 [default = false];
    /**
     * <code>optional bool nullable = 3 [default = false];</code>
     */
    boolean hasNullable();
    /**
     * <code>optional bool nullable = 3 [default = false];</code>
     */
    boolean getNullable();

    // optional int32 flexible_type_capabilities_id = 4;
    /**
     * <code>optional int32 flexible_type_capabilities_id = 4;</code>
     *
     * <pre>
     * Id in the StringTable
     * If this field is set, the type is flexible.
     * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
     * </pre>
     */
    boolean hasFlexibleTypeCapabilitiesId();
    /**
     * <code>optional int32 flexible_type_capabilities_id = 4;</code>
     *
     * <pre>
     * Id in the StringTable
     * If this field is set, the type is flexible.
     * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
     * </pre>
     */
    int getFlexibleTypeCapabilitiesId();

    // optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    boolean hasFlexibleUpperBound();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getFlexibleUpperBound();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getFlexibleUpperBoundOrBuilder();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.Type}
   */
  public static final class Type extends
      com.google.protobuf.GeneratedMessage.ExtendableMessage<
        Type> implements TypeOrBuilder {
    // Use Type.newBuilder() to construct.
    private Type(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, ?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Type(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Type defaultInstance;
    public static Type getDefaultInstance() {
      return defaultInstance;
    }

    public Type getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Type(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = constructor_.toBuilder();
              }
              constructor_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(constructor_);
                constructor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                argument_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument>();
                mutable_bitField0_ |= 0x00000002;
              }
              argument_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              nullable_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              flexibleTypeCapabilitiesId_ = input.readInt32();
              break;
            }
            case 42: {
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = flexibleUpperBound_.toBuilder();
              }
              flexibleUpperBound_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(flexibleUpperBound_);
                flexibleUpperBound_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder.class);
    }

    public static com.google.protobuf.Parser<Type> PARSER =
        new com.google.protobuf.AbstractParser<Type>() {
      public Type parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Type(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Type> getParserForType() {
      return PARSER;
    }

    public interface ConstructorOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
       */
      boolean hasKind();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind getKind();

      // required int32 id = 2;
      /**
       * <code>required int32 id = 2;</code>
       *
       * <pre>
       * CLASS - fqName id, TYPE_PARAMETER - type parameter id
       * </pre>
       */
      boolean hasId();
      /**
       * <code>required int32 id = 2;</code>
       *
       * <pre>
       * CLASS - fqName id, TYPE_PARAMETER - type parameter id
       * </pre>
       */
      int getId();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Type.Constructor}
     */
    public static final class Constructor extends
        com.google.protobuf.GeneratedMessage
        implements ConstructorOrBuilder {
      // Use Constructor.newBuilder() to construct.
      private Constructor(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Constructor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Constructor defaultInstance;
      public static Constructor getDefaultInstance() {
        return defaultInstance;
      }

      public Constructor getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Constructor(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind value = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  kind_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                id_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder.class);
      }

      public static com.google.protobuf.Parser<Constructor> PARSER =
          new com.google.protobuf.AbstractParser<Constructor>() {
        public Constructor parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Constructor(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<Constructor> getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code org.jetbrains.kotlin.serialization.Type.Constructor.Kind}
       */
      public enum Kind
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>CLASS = 0;</code>
         */
        CLASS(0, 0),
        /**
         * <code>TYPE_PARAMETER = 1;</code>
         */
        TYPE_PARAMETER(1, 1),
        ;

        /**
         * <code>CLASS = 0;</code>
         */
        public static final int CLASS_VALUE = 0;
        /**
         * <code>TYPE_PARAMETER = 1;</code>
         */
        public static final int TYPE_PARAMETER_VALUE = 1;


        public final int getNumber() { return value; }

        public static Kind valueOf(int value) {
          switch (value) {
            case 0: return CLASS;
            case 1: return TYPE_PARAMETER;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<Kind>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap<Kind>
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Kind>() {
                public Kind findValueByNumber(int number) {
                  return Kind.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDescriptor().getEnumTypes().get(0);
        }

        private static final Kind[] VALUES = values();

        public static Kind valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private Kind(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Type.Constructor.Kind)
      }

      private int bitField0_;
      // optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];
      public static final int KIND_FIELD_NUMBER = 1;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind kind_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind getKind() {
        return kind_;
      }

      // required int32 id = 2;
      public static final int ID_FIELD_NUMBER = 2;
      private int id_;
      /**
       * <code>required int32 id = 2;</code>
       *
       * <pre>
       * CLASS - fqName id, TYPE_PARAMETER - type parameter id
       * </pre>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 id = 2;</code>
       *
       * <pre>
       * CLASS - fqName id, TYPE_PARAMETER - type parameter id
       * </pre>
       */
      public int getId() {
        return id_;
      }

      private void initFields() {
        kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind.CLASS;
        id_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, kind_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, id_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, kind_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, id_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Type.Constructor}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind.CLASS;
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.kind_ = kind_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.id_ = id_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance()) return this;
          if (other.hasKind()) {
            setKind(other.getKind());
          }
          if (other.hasId()) {
            setId(other.getId());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasId()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind.CLASS;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
         */
        public boolean hasKind() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind getKind() {
          return kind_;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
         */
        public Builder setKind(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          kind_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Constructor.Kind kind = 1 [default = CLASS];</code>
         */
        public Builder clearKind() {
          bitField0_ = (bitField0_ & ~0x00000001);
          kind_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Kind.CLASS;
          onChanged();
          return this;
        }

        // required int32 id = 2;
        private int id_ ;
        /**
         * <code>required int32 id = 2;</code>
         *
         * <pre>
         * CLASS - fqName id, TYPE_PARAMETER - type parameter id
         * </pre>
         */
        public boolean hasId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int32 id = 2;</code>
         *
         * <pre>
         * CLASS - fqName id, TYPE_PARAMETER - type parameter id
         * </pre>
         */
        public int getId() {
          return id_;
        }
        /**
         * <code>required int32 id = 2;</code>
         *
         * <pre>
         * CLASS - fqName id, TYPE_PARAMETER - type parameter id
         * </pre>
         */
        public Builder setId(int value) {
          bitField0_ |= 0x00000002;
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 id = 2;</code>
         *
         * <pre>
         * CLASS - fqName id, TYPE_PARAMETER - type parameter id
         * </pre>
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          id_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Type.Constructor)
      }

      static {
        defaultInstance = new Constructor(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Type.Constructor)
    }

    public interface ArgumentOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
       */
      boolean hasProjection();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection getProjection();

      // optional .org.jetbrains.kotlin.serialization.Type type = 2;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      boolean hasType();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Type.Argument}
     */
    public static final class Argument extends
        com.google.protobuf.GeneratedMessage
        implements ArgumentOrBuilder {
      // Use Argument.newBuilder() to construct.
      private Argument(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Argument(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Argument defaultInstance;
      public static Argument getDefaultInstance() {
        return defaultInstance;
      }

      public Argument getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Argument(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection value = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  projection_ = value;
                }
                break;
              }
              case 18: {
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = type_.toBuilder();
                }
                type_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(type_);
                  type_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Argument_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder.class);
      }

      public static com.google.protobuf.Parser<Argument> PARSER =
          new com.google.protobuf.AbstractParser<Argument>() {
        public Argument parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Argument(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<Argument> getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code org.jetbrains.kotlin.serialization.Type.Argument.Projection}
       */
      public enum Projection
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>IN = 0;</code>
         */
        IN(0, 0),
        /**
         * <code>OUT = 1;</code>
         */
        OUT(1, 1),
        /**
         * <code>INV = 2;</code>
         */
        INV(2, 2),
        /**
         * <code>STAR = 3;</code>
         */
        STAR(3, 3),
        ;

        /**
         * <code>IN = 0;</code>
         */
        public static final int IN_VALUE = 0;
        /**
         * <code>OUT = 1;</code>
         */
        public static final int OUT_VALUE = 1;
        /**
         * <code>INV = 2;</code>
         */
        public static final int INV_VALUE = 2;
        /**
         * <code>STAR = 3;</code>
         */
        public static final int STAR_VALUE = 3;


        public final int getNumber() { return value; }

        public static Projection valueOf(int value) {
          switch (value) {
            case 0: return IN;
            case 1: return OUT;
            case 2: return INV;
            case 3: return STAR;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<Projection>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap<Projection>
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Projection>() {
                public Projection findValueByNumber(int number) {
                  return Projection.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.getDescriptor().getEnumTypes().get(0);
        }

        private static final Projection[] VALUES = values();

        public static Projection valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private Projection(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Type.Argument.Projection)
      }

      private int bitField0_;
      // optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];
      public static final int PROJECTION_FIELD_NUMBER = 1;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection projection_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
       */
      public boolean hasProjection() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection getProjection() {
        return projection_;
      }

      // optional .org.jetbrains.kotlin.serialization.Type type = 2;
      public static final int TYPE_FIELD_NUMBER = 2;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type type_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType() {
        return type_;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
       *
       * <pre>
       * when projection is STAR, no type is written, otherwise type must be specified
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder() {
        return type_;
      }

      private void initFields() {
        projection_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection.INV;
        type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (hasType()) {
          if (!getType().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, projection_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, type_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, projection_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, type_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Type.Argument}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Argument_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getTypeFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          projection_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection.INV;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (typeBuilder_ == null) {
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          } else {
            typeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.projection_ = projection_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (typeBuilder_ == null) {
            result.type_ = type_;
          } else {
            result.type_ = typeBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.getDefaultInstance()) return this;
          if (other.hasProjection()) {
            setProjection(other.getProjection());
          }
          if (other.hasType()) {
            mergeType(other.getType());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (hasType()) {
            if (!getType().isInitialized()) {
              
              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection projection_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection.INV;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
         */
        public boolean hasProjection() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection getProjection() {
          return projection_;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
         */
        public Builder setProjection(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          projection_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type.Argument.Projection projection = 1 [default = INV];</code>
         */
        public Builder clearProjection() {
          bitField0_ = (bitField0_ & ~0x00000001);
          projection_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Projection.INV;
          onChanged();
          return this;
        }

        // optional .org.jetbrains.kotlin.serialization.Type type = 2;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> typeBuilder_;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public boolean hasType() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType() {
          if (typeBuilder_ == null) {
            return type_;
          } else {
            return typeBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public Builder setType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (typeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            type_ = value;
            onChanged();
          } else {
            typeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public Builder setType(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
          if (typeBuilder_ == null) {
            type_ = builderForValue.build();
            onChanged();
          } else {
            typeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public Builder mergeType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (typeBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                type_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
              type_ =
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(type_).mergeFrom(value).buildPartial();
            } else {
              type_ = value;
            }
            onChanged();
          } else {
            typeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public Builder clearType() {
          if (typeBuilder_ == null) {
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
            onChanged();
          } else {
            typeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getTypeBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getTypeFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder() {
          if (typeBuilder_ != null) {
            return typeBuilder_.getMessageOrBuilder();
          } else {
            return type_;
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type type = 2;</code>
         *
         * <pre>
         * when projection is STAR, no type is written, otherwise type must be specified
         * </pre>
         */
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
            getTypeFieldBuilder() {
          if (typeBuilder_ == null) {
            typeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                    type_,
                    getParentForChildren(),
                    isClean());
            type_ = null;
          }
          return typeBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Type.Argument)
      }

      static {
        defaultInstance = new Argument(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Type.Argument)
    }

    private int bitField0_;
    // required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;
    public static final int CONSTRUCTOR_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor constructor_;
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    public boolean hasConstructor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor getConstructor() {
      return constructor_;
    }
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder getConstructorOrBuilder() {
      return constructor_;
    }

    // repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;
    public static final int ARGUMENT_FIELD_NUMBER = 2;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> argument_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> getArgumentList() {
      return argument_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder> 
        getArgumentOrBuilderList() {
      return argument_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    public int getArgumentCount() {
      return argument_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument getArgument(int index) {
      return argument_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder getArgumentOrBuilder(
        int index) {
      return argument_.get(index);
    }

    // optional bool nullable = 3 [default = false];
    public static final int NULLABLE_FIELD_NUMBER = 3;
    private boolean nullable_;
    /**
     * <code>optional bool nullable = 3 [default = false];</code>
     */
    public boolean hasNullable() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool nullable = 3 [default = false];</code>
     */
    public boolean getNullable() {
      return nullable_;
    }

    // optional int32 flexible_type_capabilities_id = 4;
    public static final int FLEXIBLE_TYPE_CAPABILITIES_ID_FIELD_NUMBER = 4;
    private int flexibleTypeCapabilitiesId_;
    /**
     * <code>optional int32 flexible_type_capabilities_id = 4;</code>
     *
     * <pre>
     * Id in the StringTable
     * If this field is set, the type is flexible.
     * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
     * </pre>
     */
    public boolean hasFlexibleTypeCapabilitiesId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int32 flexible_type_capabilities_id = 4;</code>
     *
     * <pre>
     * Id in the StringTable
     * If this field is set, the type is flexible.
     * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
     * </pre>
     */
    public int getFlexibleTypeCapabilitiesId() {
      return flexibleTypeCapabilitiesId_;
    }

    // optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;
    public static final int FLEXIBLE_UPPER_BOUND_FIELD_NUMBER = 5;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type flexibleUpperBound_;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    public boolean hasFlexibleUpperBound() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getFlexibleUpperBound() {
      return flexibleUpperBound_;
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
     *
     * <pre>
     * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
     * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
     * to represent flexible types is too many wasted bytes.
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getFlexibleUpperBoundOrBuilder() {
      return flexibleUpperBound_;
    }

    private void initFields() {
      constructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance();
      argument_ = java.util.Collections.emptyList();
      nullable_ = false;
      flexibleTypeCapabilitiesId_ = 0;
      flexibleUpperBound_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasConstructor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getConstructor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getArgumentCount(); i++) {
        if (!getArgument(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasFlexibleUpperBound()) {
        if (!getFlexibleUpperBound().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!extensionsAreInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      com.google.protobuf.GeneratedMessage
        .ExtendableMessage<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type>.ExtensionWriter extensionWriter =
          newExtensionWriter();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, constructor_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        output.writeMessage(2, argument_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(3, nullable_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, flexibleTypeCapabilitiesId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, flexibleUpperBound_);
      }
      extensionWriter.writeUntil(200, output);
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, constructor_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, argument_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, nullable_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, flexibleTypeCapabilitiesId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, flexibleUpperBound_);
      }
      size += extensionsSerializedSize();
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Type}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.ExtendableBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, Builder> implements org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getConstructorFieldBuilder();
          getArgumentFieldBuilder();
          getFlexibleUpperBoundFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (constructorBuilder_ == null) {
          constructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance();
        } else {
          constructorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (argumentBuilder_ == null) {
          argument_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          argumentBuilder_.clear();
        }
        nullable_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        flexibleTypeCapabilitiesId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (flexibleUpperBoundBuilder_ == null) {
          flexibleUpperBound_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        } else {
          flexibleUpperBoundBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Type_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Type result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Type result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Type(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (constructorBuilder_ == null) {
          result.constructor_ = constructor_;
        } else {
          result.constructor_ = constructorBuilder_.build();
        }
        if (argumentBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            argument_ = java.util.Collections.unmodifiableList(argument_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.argument_ = argument_;
        } else {
          result.argument_ = argumentBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.nullable_ = nullable_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.flexibleTypeCapabilitiesId_ = flexibleTypeCapabilitiesId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (flexibleUpperBoundBuilder_ == null) {
          result.flexibleUpperBound_ = flexibleUpperBound_;
        } else {
          result.flexibleUpperBound_ = flexibleUpperBoundBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Type) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Type)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) return this;
        if (other.hasConstructor()) {
          mergeConstructor(other.getConstructor());
        }
        if (argumentBuilder_ == null) {
          if (!other.argument_.isEmpty()) {
            if (argument_.isEmpty()) {
              argument_ = other.argument_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureArgumentIsMutable();
              argument_.addAll(other.argument_);
            }
            onChanged();
          }
        } else {
          if (!other.argument_.isEmpty()) {
            if (argumentBuilder_.isEmpty()) {
              argumentBuilder_.dispose();
              argumentBuilder_ = null;
              argument_ = other.argument_;
              bitField0_ = (bitField0_ & ~0x00000002);
              argumentBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getArgumentFieldBuilder() : null;
            } else {
              argumentBuilder_.addAllMessages(other.argument_);
            }
          }
        }
        if (other.hasNullable()) {
          setNullable(other.getNullable());
        }
        if (other.hasFlexibleTypeCapabilitiesId()) {
          setFlexibleTypeCapabilitiesId(other.getFlexibleTypeCapabilitiesId());
        }
        if (other.hasFlexibleUpperBound()) {
          mergeFlexibleUpperBound(other.getFlexibleUpperBound());
        }
        this.mergeExtensionFields(other);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasConstructor()) {
          
          return false;
        }
        if (!getConstructor().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getArgumentCount(); i++) {
          if (!getArgument(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasFlexibleUpperBound()) {
          if (!getFlexibleUpperBound().isInitialized()) {
            
            return false;
          }
        }
        if (!extensionsAreInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Type parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Type) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor constructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder> constructorBuilder_;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public boolean hasConstructor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor getConstructor() {
        if (constructorBuilder_ == null) {
          return constructor_;
        } else {
          return constructorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public Builder setConstructor(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor value) {
        if (constructorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          constructor_ = value;
          onChanged();
        } else {
          constructorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public Builder setConstructor(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder builderForValue) {
        if (constructorBuilder_ == null) {
          constructor_ = builderForValue.build();
          onChanged();
        } else {
          constructorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public Builder mergeConstructor(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor value) {
        if (constructorBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              constructor_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance()) {
            constructor_ =
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.newBuilder(constructor_).mergeFrom(value).buildPartial();
          } else {
            constructor_ = value;
          }
          onChanged();
        } else {
          constructorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public Builder clearConstructor() {
        if (constructorBuilder_ == null) {
          constructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.getDefaultInstance();
          onChanged();
        } else {
          constructorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder getConstructorBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getConstructorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder getConstructorOrBuilder() {
        if (constructorBuilder_ != null) {
          return constructorBuilder_.getMessageOrBuilder();
        } else {
          return constructor_;
        }
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type.Constructor constructor = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder> 
          getConstructorFieldBuilder() {
        if (constructorBuilder_ == null) {
          constructorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Constructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ConstructorOrBuilder>(
                  constructor_,
                  getParentForChildren(),
                  isClean());
          constructor_ = null;
        }
        return constructorBuilder_;
      }

      // repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> argument_ =
        java.util.Collections.emptyList();
      private void ensureArgumentIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument>(argument_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder> argumentBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> getArgumentList() {
        if (argumentBuilder_ == null) {
          return java.util.Collections.unmodifiableList(argument_);
        } else {
          return argumentBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public int getArgumentCount() {
        if (argumentBuilder_ == null) {
          return argument_.size();
        } else {
          return argumentBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument getArgument(int index) {
        if (argumentBuilder_ == null) {
          return argument_.get(index);
        } else {
          return argumentBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.set(index, value);
          onChanged();
        } else {
          argumentBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.set(index, builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder addArgument(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.add(value);
          onChanged();
        } else {
          argumentBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentIsMutable();
          argument_.add(index, value);
          onChanged();
        } else {
          argumentBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder addArgument(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.add(builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.add(index, builderForValue.build());
          onChanged();
        } else {
          argumentBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder addAllArgument(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument> values) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          super.addAll(values, argument_);
          onChanged();
        } else {
          argumentBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder clearArgument() {
        if (argumentBuilder_ == null) {
          argument_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          argumentBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public Builder removeArgument(int index) {
        if (argumentBuilder_ == null) {
          ensureArgumentIsMutable();
          argument_.remove(index);
          onChanged();
        } else {
          argumentBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder getArgumentBuilder(
          int index) {
        return getArgumentFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder getArgumentOrBuilder(
          int index) {
        if (argumentBuilder_ == null) {
          return argument_.get(index);  } else {
          return argumentBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder> 
           getArgumentOrBuilderList() {
        if (argumentBuilder_ != null) {
          return argumentBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(argument_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder addArgumentBuilder() {
        return getArgumentFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder addArgumentBuilder(
          int index) {
        return getArgumentFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type.Argument argument = 2;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder> 
           getArgumentBuilderList() {
        return getArgumentFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder> 
          getArgumentFieldBuilder() {
        if (argumentBuilder_ == null) {
          argumentBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Argument.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.ArgumentOrBuilder>(
                  argument_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          argument_ = null;
        }
        return argumentBuilder_;
      }

      // optional bool nullable = 3 [default = false];
      private boolean nullable_ ;
      /**
       * <code>optional bool nullable = 3 [default = false];</code>
       */
      public boolean hasNullable() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool nullable = 3 [default = false];</code>
       */
      public boolean getNullable() {
        return nullable_;
      }
      /**
       * <code>optional bool nullable = 3 [default = false];</code>
       */
      public Builder setNullable(boolean value) {
        bitField0_ |= 0x00000004;
        nullable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool nullable = 3 [default = false];</code>
       */
      public Builder clearNullable() {
        bitField0_ = (bitField0_ & ~0x00000004);
        nullable_ = false;
        onChanged();
        return this;
      }

      // optional int32 flexible_type_capabilities_id = 4;
      private int flexibleTypeCapabilitiesId_ ;
      /**
       * <code>optional int32 flexible_type_capabilities_id = 4;</code>
       *
       * <pre>
       * Id in the StringTable
       * If this field is set, the type is flexible.
       * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
       * </pre>
       */
      public boolean hasFlexibleTypeCapabilitiesId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int32 flexible_type_capabilities_id = 4;</code>
       *
       * <pre>
       * Id in the StringTable
       * If this field is set, the type is flexible.
       * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
       * </pre>
       */
      public int getFlexibleTypeCapabilitiesId() {
        return flexibleTypeCapabilitiesId_;
      }
      /**
       * <code>optional int32 flexible_type_capabilities_id = 4;</code>
       *
       * <pre>
       * Id in the StringTable
       * If this field is set, the type is flexible.
       * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
       * </pre>
       */
      public Builder setFlexibleTypeCapabilitiesId(int value) {
        bitField0_ |= 0x00000008;
        flexibleTypeCapabilitiesId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 flexible_type_capabilities_id = 4;</code>
       *
       * <pre>
       * Id in the StringTable
       * If this field is set, the type is flexible.
       * All the other fields and extensions represent its lower bound, and flexible_upper_bound must be set and represents its upper bound.
       * </pre>
       */
      public Builder clearFlexibleTypeCapabilitiesId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        flexibleTypeCapabilitiesId_ = 0;
        onChanged();
        return this;
      }

      // optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type flexibleUpperBound_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> flexibleUpperBoundBuilder_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public boolean hasFlexibleUpperBound() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getFlexibleUpperBound() {
        if (flexibleUpperBoundBuilder_ == null) {
          return flexibleUpperBound_;
        } else {
          return flexibleUpperBoundBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public Builder setFlexibleUpperBound(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (flexibleUpperBoundBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flexibleUpperBound_ = value;
          onChanged();
        } else {
          flexibleUpperBoundBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public Builder setFlexibleUpperBound(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (flexibleUpperBoundBuilder_ == null) {
          flexibleUpperBound_ = builderForValue.build();
          onChanged();
        } else {
          flexibleUpperBoundBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public Builder mergeFlexibleUpperBound(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (flexibleUpperBoundBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              flexibleUpperBound_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
            flexibleUpperBound_ =
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(flexibleUpperBound_).mergeFrom(value).buildPartial();
          } else {
            flexibleUpperBound_ = value;
          }
          onChanged();
        } else {
          flexibleUpperBoundBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public Builder clearFlexibleUpperBound() {
        if (flexibleUpperBoundBuilder_ == null) {
          flexibleUpperBound_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          onChanged();
        } else {
          flexibleUpperBoundBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getFlexibleUpperBoundBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getFlexibleUpperBoundFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getFlexibleUpperBoundOrBuilder() {
        if (flexibleUpperBoundBuilder_ != null) {
          return flexibleUpperBoundBuilder_.getMessageOrBuilder();
        } else {
          return flexibleUpperBound_;
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type flexible_upper_bound = 5;</code>
       *
       * <pre>
       * While such an "indirect" encoding helps backwards compatibility with pre-flexible-types versions of this format,
       * we use it mainly to save space: having a special mandatory tag on each an every type just to have an option
       * to represent flexible types is too many wasted bytes.
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
          getFlexibleUpperBoundFieldBuilder() {
        if (flexibleUpperBoundBuilder_ == null) {
          flexibleUpperBoundBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                  flexibleUpperBound_,
                  getParentForChildren(),
                  isClean());
          flexibleUpperBound_ = null;
        }
        return flexibleUpperBoundBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Type)
    }

    static {
      defaultInstance = new Type(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Type)
  }

  public interface TypeParameterOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required int32 id = 1;
    /**
     * <code>required int32 id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>required int32 id = 1;</code>
     */
    int getId();

    // required int32 name = 2;
    /**
     * <code>required int32 name = 2;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    boolean hasName();
    /**
     * <code>required int32 name = 2;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    int getName();

    // optional bool reified = 3 [default = false];
    /**
     * <code>optional bool reified = 3 [default = false];</code>
     */
    boolean hasReified();
    /**
     * <code>optional bool reified = 3 [default = false];</code>
     */
    boolean getReified();

    // optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
     */
    boolean hasVariance();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance getVariance();

    // repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> 
        getUpperBoundList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getUpperBound(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    int getUpperBoundCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
        getUpperBoundOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getUpperBoundOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.TypeParameter}
   */
  public static final class TypeParameter extends
      com.google.protobuf.GeneratedMessage
      implements TypeParameterOrBuilder {
    // Use TypeParameter.newBuilder() to construct.
    private TypeParameter(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TypeParameter(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final TypeParameter defaultInstance;
    public static TypeParameter getDefaultInstance() {
      return defaultInstance;
    }

    public TypeParameter getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private TypeParameter(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              name_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              reified_ = input.readBool();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance value = org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                variance_ = value;
              }
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                upperBound_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type>();
                mutable_bitField0_ |= 0x00000010;
              }
              upperBound_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          upperBound_ = java.util.Collections.unmodifiableList(upperBound_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_TypeParameter_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder.class);
    }

    public static com.google.protobuf.Parser<TypeParameter> PARSER =
        new com.google.protobuf.AbstractParser<TypeParameter>() {
      public TypeParameter parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TypeParameter(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<TypeParameter> getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.TypeParameter.Variance}
     */
    public enum Variance
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>IN = 0;</code>
       */
      IN(0, 0),
      /**
       * <code>OUT = 1;</code>
       */
      OUT(1, 1),
      /**
       * <code>INV = 2;</code>
       */
      INV(2, 2),
      ;

      /**
       * <code>IN = 0;</code>
       */
      public static final int IN_VALUE = 0;
      /**
       * <code>OUT = 1;</code>
       */
      public static final int OUT_VALUE = 1;
      /**
       * <code>INV = 2;</code>
       */
      public static final int INV_VALUE = 2;


      public final int getNumber() { return value; }

      public static Variance valueOf(int value) {
        switch (value) {
          case 0: return IN;
          case 1: return OUT;
          case 2: return INV;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Variance>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<Variance>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Variance>() {
              public Variance findValueByNumber(int number) {
                return Variance.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDescriptor().getEnumTypes().get(0);
      }

      private static final Variance[] VALUES = values();

      public static Variance valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private Variance(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.TypeParameter.Variance)
    }

    private int bitField0_;
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <code>required int32 id = 1;</code>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 id = 1;</code>
     */
    public int getId() {
      return id_;
    }

    // required int32 name = 2;
    public static final int NAME_FIELD_NUMBER = 2;
    private int name_;
    /**
     * <code>required int32 name = 2;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 name = 2;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    public int getName() {
      return name_;
    }

    // optional bool reified = 3 [default = false];
    public static final int REIFIED_FIELD_NUMBER = 3;
    private boolean reified_;
    /**
     * <code>optional bool reified = 3 [default = false];</code>
     */
    public boolean hasReified() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool reified = 3 [default = false];</code>
     */
    public boolean getReified() {
      return reified_;
    }

    // optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];
    public static final int VARIANCE_FIELD_NUMBER = 4;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance variance_;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
     */
    public boolean hasVariance() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance getVariance() {
      return variance_;
    }

    // repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;
    public static final int UPPER_BOUND_FIELD_NUMBER = 5;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> upperBound_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> getUpperBoundList() {
      return upperBound_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
        getUpperBoundOrBuilderList() {
      return upperBound_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    public int getUpperBoundCount() {
      return upperBound_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getUpperBound(int index) {
      return upperBound_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getUpperBoundOrBuilder(
        int index) {
      return upperBound_.get(index);
    }

    private void initFields() {
      id_ = 0;
      name_ = 0;
      reified_ = false;
      variance_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance.INV;
      upperBound_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getUpperBoundCount(); i++) {
        if (!getUpperBound(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, reified_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, variance_.getNumber());
      }
      for (int i = 0; i < upperBound_.size(); i++) {
        output.writeMessage(5, upperBound_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, reified_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, variance_.getNumber());
      }
      for (int i = 0; i < upperBound_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, upperBound_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.TypeParameter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_TypeParameter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getUpperBoundFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        id_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        reified_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        variance_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance.INV;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (upperBoundBuilder_ == null) {
          upperBound_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          upperBoundBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reified_ = reified_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.variance_ = variance_;
        if (upperBoundBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            upperBound_ = java.util.Collections.unmodifiableList(upperBound_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.upperBound_ = upperBound_;
        } else {
          result.upperBound_ = upperBoundBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasName()) {
          setName(other.getName());
        }
        if (other.hasReified()) {
          setReified(other.getReified());
        }
        if (other.hasVariance()) {
          setVariance(other.getVariance());
        }
        if (upperBoundBuilder_ == null) {
          if (!other.upperBound_.isEmpty()) {
            if (upperBound_.isEmpty()) {
              upperBound_ = other.upperBound_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureUpperBoundIsMutable();
              upperBound_.addAll(other.upperBound_);
            }
            onChanged();
          }
        } else {
          if (!other.upperBound_.isEmpty()) {
            if (upperBoundBuilder_.isEmpty()) {
              upperBoundBuilder_.dispose();
              upperBoundBuilder_ = null;
              upperBound_ = other.upperBound_;
              bitField0_ = (bitField0_ & ~0x00000010);
              upperBoundBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getUpperBoundFieldBuilder() : null;
            } else {
              upperBoundBuilder_.addAllMessages(other.upperBound_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasId()) {
          
          return false;
        }
        if (!hasName()) {
          
          return false;
        }
        for (int i = 0; i < getUpperBoundCount(); i++) {
          if (!getUpperBound(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 id = 1;
      private int id_ ;
      /**
       * <code>required int32 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 id = 1;</code>
       */
      public int getId() {
        return id_;
      }
      /**
       * <code>required int32 id = 1;</code>
       */
      public Builder setId(int value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 id = 1;</code>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      // required int32 name = 2;
      private int name_ ;
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public int getName() {
        return name_;
      }
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public Builder setName(int value) {
        bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = 0;
        onChanged();
        return this;
      }

      // optional bool reified = 3 [default = false];
      private boolean reified_ ;
      /**
       * <code>optional bool reified = 3 [default = false];</code>
       */
      public boolean hasReified() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool reified = 3 [default = false];</code>
       */
      public boolean getReified() {
        return reified_;
      }
      /**
       * <code>optional bool reified = 3 [default = false];</code>
       */
      public Builder setReified(boolean value) {
        bitField0_ |= 0x00000004;
        reified_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool reified = 3 [default = false];</code>
       */
      public Builder clearReified() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reified_ = false;
        onChanged();
        return this;
      }

      // optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance variance_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance.INV;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
       */
      public boolean hasVariance() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance getVariance() {
        return variance_;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
       */
      public Builder setVariance(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        variance_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.TypeParameter.Variance variance = 4 [default = INV];</code>
       */
      public Builder clearVariance() {
        bitField0_ = (bitField0_ & ~0x00000008);
        variance_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Variance.INV;
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> upperBound_ =
        java.util.Collections.emptyList();
      private void ensureUpperBoundIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          upperBound_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type>(upperBound_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> upperBoundBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> getUpperBoundList() {
        if (upperBoundBuilder_ == null) {
          return java.util.Collections.unmodifiableList(upperBound_);
        } else {
          return upperBoundBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public int getUpperBoundCount() {
        if (upperBoundBuilder_ == null) {
          return upperBound_.size();
        } else {
          return upperBoundBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getUpperBound(int index) {
        if (upperBoundBuilder_ == null) {
          return upperBound_.get(index);
        } else {
          return upperBoundBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder setUpperBound(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (upperBoundBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpperBoundIsMutable();
          upperBound_.set(index, value);
          onChanged();
        } else {
          upperBoundBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder setUpperBound(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (upperBoundBuilder_ == null) {
          ensureUpperBoundIsMutable();
          upperBound_.set(index, builderForValue.build());
          onChanged();
        } else {
          upperBoundBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder addUpperBound(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (upperBoundBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpperBoundIsMutable();
          upperBound_.add(value);
          onChanged();
        } else {
          upperBoundBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder addUpperBound(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (upperBoundBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpperBoundIsMutable();
          upperBound_.add(index, value);
          onChanged();
        } else {
          upperBoundBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder addUpperBound(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (upperBoundBuilder_ == null) {
          ensureUpperBoundIsMutable();
          upperBound_.add(builderForValue.build());
          onChanged();
        } else {
          upperBoundBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder addUpperBound(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (upperBoundBuilder_ == null) {
          ensureUpperBoundIsMutable();
          upperBound_.add(index, builderForValue.build());
          onChanged();
        } else {
          upperBoundBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder addAllUpperBound(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> values) {
        if (upperBoundBuilder_ == null) {
          ensureUpperBoundIsMutable();
          super.addAll(values, upperBound_);
          onChanged();
        } else {
          upperBoundBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder clearUpperBound() {
        if (upperBoundBuilder_ == null) {
          upperBound_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          upperBoundBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public Builder removeUpperBound(int index) {
        if (upperBoundBuilder_ == null) {
          ensureUpperBoundIsMutable();
          upperBound_.remove(index);
          onChanged();
        } else {
          upperBoundBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getUpperBoundBuilder(
          int index) {
        return getUpperBoundFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getUpperBoundOrBuilder(
          int index) {
        if (upperBoundBuilder_ == null) {
          return upperBound_.get(index);  } else {
          return upperBoundBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
           getUpperBoundOrBuilderList() {
        if (upperBoundBuilder_ != null) {
          return upperBoundBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(upperBound_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder addUpperBoundBuilder() {
        return getUpperBoundFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder addUpperBoundBuilder(
          int index) {
        return getUpperBoundFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type upper_bound = 5;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder> 
           getUpperBoundBuilderList() {
        return getUpperBoundFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
          getUpperBoundFieldBuilder() {
        if (upperBoundBuilder_ == null) {
          upperBoundBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                  upperBound_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          upperBound_ = null;
        }
        return upperBoundBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.TypeParameter)
    }

    static {
      defaultInstance = new TypeParameter(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.TypeParameter)
  }

  public interface ClassOrBuilder extends
      com.google.protobuf.GeneratedMessage.
          ExtendableMessageOrBuilder<Class> {

    // optional int32 flags = 1 [default = 0];
    /**
     * <code>optional int32 flags = 1 [default = 0];</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotation
     *ClassKind
     *is_inner
     * </pre>
     */
    boolean hasFlags();
    /**
     * <code>optional int32 flags = 1 [default = 0];</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotation
     *ClassKind
     *is_inner
     * </pre>
     */
    int getFlags();

    // required int32 fq_name = 3;
    /**
     * <code>required int32 fq_name = 3;</code>
     */
    boolean hasFqName();
    /**
     * <code>required int32 fq_name = 3;</code>
     */
    int getFqName();

    // optional int32 companion_object_name = 4;
    /**
     * <code>optional int32 companion_object_name = 4;</code>
     *
     * <pre>
     * If this field is present, it contains the name of companion object.
     * </pre>
     */
    boolean hasCompanionObjectName();
    /**
     * <code>optional int32 companion_object_name = 4;</code>
     *
     * <pre>
     * If this field is present, it contains the name of companion object.
     * </pre>
     */
    int getCompanionObjectName();

    // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> 
        getTypeParameterList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    int getTypeParameterCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
        getTypeParameterOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
        int index);

    // repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> 
        getSupertypeList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getSupertype(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    int getSupertypeCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
        getSupertypeOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getSupertypeOrBuilder(
        int index);

    // repeated int32 nested_class_name = 7 [packed = true];
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    java.util.List<java.lang.Integer> getNestedClassNameList();
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    int getNestedClassNameCount();
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    int getNestedClassName(int index);

    // repeated .org.jetbrains.kotlin.serialization.Callable member = 11;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> 
        getMemberList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    int getMemberCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getMemberOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
        int index);

    // repeated int32 enum_entry = 12 [packed = true];
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getEnumEntryList();
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    int getEnumEntryCount();
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    int getEnumEntry(int index);

    // optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    boolean hasPrimaryConstructor();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor getPrimaryConstructor();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder getPrimaryConstructorOrBuilder();

    // repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> 
        getSecondaryConstructorList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getSecondaryConstructor(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    int getSecondaryConstructorCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getSecondaryConstructorOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getSecondaryConstructorOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.Class}
   */
  public static final class Class extends
      com.google.protobuf.GeneratedMessage.ExtendableMessage<
        Class> implements ClassOrBuilder {
    // Use Class.newBuilder() to construct.
    private Class(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, ?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Class(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Class defaultInstance;
    public static Class getDefaultInstance() {
      return defaultInstance;
    }

    public Class getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Class(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              flags_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              fqName_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              companionObjectName_ = input.readInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                typeParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter>();
                mutable_bitField0_ |= 0x00000008;
              }
              typeParameter_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.PARSER, extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                supertype_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type>();
                mutable_bitField0_ |= 0x00000010;
              }
              supertype_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry));
              break;
            }
            case 56: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                nestedClassName_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000020;
              }
              nestedClassName_.add(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020) && input.getBytesUntilLimit() > 0) {
                nestedClassName_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000020;
              }
              while (input.getBytesUntilLimit() > 0) {
                nestedClassName_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 90: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                member_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>();
                mutable_bitField0_ |= 0x00000040;
              }
              member_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.PARSER, extensionRegistry));
              break;
            }
            case 96: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                enumEntry_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000080;
              }
              enumEntry_.add(input.readInt32());
              break;
            }
            case 98: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080) && input.getBytesUntilLimit() > 0) {
                enumEntry_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000080;
              }
              while (input.getBytesUntilLimit() > 0) {
                enumEntry_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 106: {
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = primaryConstructor_.toBuilder();
              }
              primaryConstructor_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(primaryConstructor_);
                primaryConstructor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 114: {
              if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                secondaryConstructor_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>();
                mutable_bitField0_ |= 0x00000200;
              }
              secondaryConstructor_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          typeParameter_ = java.util.Collections.unmodifiableList(typeParameter_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          supertype_ = java.util.Collections.unmodifiableList(supertype_);
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          nestedClassName_ = java.util.Collections.unmodifiableList(nestedClassName_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          member_ = java.util.Collections.unmodifiableList(member_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          enumEntry_ = java.util.Collections.unmodifiableList(enumEntry_);
        }
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          secondaryConstructor_ = java.util.Collections.unmodifiableList(secondaryConstructor_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder.class);
    }

    public static com.google.protobuf.Parser<Class> PARSER =
        new com.google.protobuf.AbstractParser<Class>() {
      public Class parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Class(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Class> getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.Class.Kind}
     */
    public enum Kind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CLASS = 0;</code>
       *
       * <pre>
       * 3 bits
       * </pre>
       */
      CLASS(0, 0),
      /**
       * <code>TRAIT = 1;</code>
       */
      TRAIT(1, 1),
      /**
       * <code>ENUM_CLASS = 2;</code>
       */
      ENUM_CLASS(2, 2),
      /**
       * <code>ENUM_ENTRY = 3;</code>
       */
      ENUM_ENTRY(3, 3),
      /**
       * <code>ANNOTATION_CLASS = 4;</code>
       */
      ANNOTATION_CLASS(4, 4),
      /**
       * <code>OBJECT = 5;</code>
       */
      OBJECT(5, 5),
      /**
       * <code>CLASS_OBJECT = 6;</code>
       */
      CLASS_OBJECT(6, 6),
      ;

      /**
       * <code>CLASS = 0;</code>
       *
       * <pre>
       * 3 bits
       * </pre>
       */
      public static final int CLASS_VALUE = 0;
      /**
       * <code>TRAIT = 1;</code>
       */
      public static final int TRAIT_VALUE = 1;
      /**
       * <code>ENUM_CLASS = 2;</code>
       */
      public static final int ENUM_CLASS_VALUE = 2;
      /**
       * <code>ENUM_ENTRY = 3;</code>
       */
      public static final int ENUM_ENTRY_VALUE = 3;
      /**
       * <code>ANNOTATION_CLASS = 4;</code>
       */
      public static final int ANNOTATION_CLASS_VALUE = 4;
      /**
       * <code>OBJECT = 5;</code>
       */
      public static final int OBJECT_VALUE = 5;
      /**
       * <code>CLASS_OBJECT = 6;</code>
       */
      public static final int CLASS_OBJECT_VALUE = 6;


      public final int getNumber() { return value; }

      public static Kind valueOf(int value) {
        switch (value) {
          case 0: return CLASS;
          case 1: return TRAIT;
          case 2: return ENUM_CLASS;
          case 3: return ENUM_ENTRY;
          case 4: return ANNOTATION_CLASS;
          case 5: return OBJECT;
          case 6: return CLASS_OBJECT;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Kind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<Kind>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Kind>() {
              public Kind findValueByNumber(int number) {
                return Kind.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDescriptor().getEnumTypes().get(0);
      }

      private static final Kind[] VALUES = values();

      public static Kind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private Kind(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Class.Kind)
    }

    public interface PrimaryConstructorOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .org.jetbrains.kotlin.serialization.Callable data = 1;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      boolean hasData();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getData();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getDataOrBuilder();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Class.PrimaryConstructor}
     */
    public static final class PrimaryConstructor extends
        com.google.protobuf.GeneratedMessage
        implements PrimaryConstructorOrBuilder {
      // Use PrimaryConstructor.newBuilder() to construct.
      private PrimaryConstructor(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PrimaryConstructor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PrimaryConstructor defaultInstance;
      public static PrimaryConstructor getDefaultInstance() {
        return defaultInstance;
      }

      public PrimaryConstructor getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PrimaryConstructor(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = data_.toBuilder();
                }
                data_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(data_);
                  data_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder.class);
      }

      public static com.google.protobuf.Parser<PrimaryConstructor> PARSER =
          new com.google.protobuf.AbstractParser<PrimaryConstructor>() {
        public PrimaryConstructor parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PrimaryConstructor(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<PrimaryConstructor> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional .org.jetbrains.kotlin.serialization.Callable data = 1;
      public static final int DATA_FIELD_NUMBER = 1;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable data_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getData() {
        return data_;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
       *
       * <pre>
       * If this field is present, it contains serialized data for the primary constructor.
       * Otherwise it's default and can be created manually upon deserialization
       * Note: currently only objects have default primary constructor
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getDataOrBuilder() {
        return data_;
      }

      private void initFields() {
        data_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (hasData()) {
          if (!getData().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, data_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, data_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Class.PrimaryConstructor}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getDataFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          if (dataBuilder_ == null) {
            data_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance();
          } else {
            dataBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance()) return this;
          if (other.hasData()) {
            mergeData(other.getData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (hasData()) {
            if (!getData().isInitialized()) {
              
              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .org.jetbrains.kotlin.serialization.Callable data = 1;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable data_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> dataBuilder_;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public boolean hasData() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getData() {
          if (dataBuilder_ == null) {
            return data_;
          } else {
            return dataBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public Builder setData(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
          if (dataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            data_ = value;
            onChanged();
          } else {
            dataBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public Builder setData(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
          if (dataBuilder_ == null) {
            data_ = builderForValue.build();
            onChanged();
          } else {
            dataBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public Builder mergeData(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
          if (dataBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                data_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance()) {
              data_ =
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.newBuilder(data_).mergeFrom(value).buildPartial();
            } else {
              data_ = value;
            }
            onChanged();
          } else {
            dataBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public Builder clearData() {
          if (dataBuilder_ == null) {
            data_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance();
            onChanged();
          } else {
            dataBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder getDataBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getDataFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getDataOrBuilder() {
          if (dataBuilder_ != null) {
            return dataBuilder_.getMessageOrBuilder();
          } else {
            return data_;
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Callable data = 1;</code>
         *
         * <pre>
         * If this field is present, it contains serialized data for the primary constructor.
         * Otherwise it's default and can be created manually upon deserialization
         * Note: currently only objects have default primary constructor
         * </pre>
         */
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
            getDataFieldBuilder() {
          if (dataBuilder_ == null) {
            dataBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder>(
                    data_,
                    getParentForChildren(),
                    isClean());
            data_ = null;
          }
          return dataBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Class.PrimaryConstructor)
      }

      static {
        defaultInstance = new PrimaryConstructor(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Class.PrimaryConstructor)
    }

    private int bitField0_;
    // optional int32 flags = 1 [default = 0];
    public static final int FLAGS_FIELD_NUMBER = 1;
    private int flags_;
    /**
     * <code>optional int32 flags = 1 [default = 0];</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotation
     *ClassKind
     *is_inner
     * </pre>
     */
    public boolean hasFlags() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 flags = 1 [default = 0];</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotation
     *ClassKind
     *is_inner
     * </pre>
     */
    public int getFlags() {
      return flags_;
    }

    // required int32 fq_name = 3;
    public static final int FQ_NAME_FIELD_NUMBER = 3;
    private int fqName_;
    /**
     * <code>required int32 fq_name = 3;</code>
     */
    public boolean hasFqName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 fq_name = 3;</code>
     */
    public int getFqName() {
      return fqName_;
    }

    // optional int32 companion_object_name = 4;
    public static final int COMPANION_OBJECT_NAME_FIELD_NUMBER = 4;
    private int companionObjectName_;
    /**
     * <code>optional int32 companion_object_name = 4;</code>
     *
     * <pre>
     * If this field is present, it contains the name of companion object.
     * </pre>
     */
    public boolean hasCompanionObjectName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int32 companion_object_name = 4;</code>
     *
     * <pre>
     * If this field is present, it contains the name of companion object.
     * </pre>
     */
    public int getCompanionObjectName() {
      return companionObjectName_;
    }

    // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;
    public static final int TYPE_PARAMETER_FIELD_NUMBER = 5;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> typeParameter_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> getTypeParameterList() {
      return typeParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
        getTypeParameterOrBuilderList() {
      return typeParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    public int getTypeParameterCount() {
      return typeParameter_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index) {
      return typeParameter_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
        int index) {
      return typeParameter_.get(index);
    }

    // repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;
    public static final int SUPERTYPE_FIELD_NUMBER = 6;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> supertype_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> getSupertypeList() {
      return supertype_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
        getSupertypeOrBuilderList() {
      return supertype_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    public int getSupertypeCount() {
      return supertype_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getSupertype(int index) {
      return supertype_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getSupertypeOrBuilder(
        int index) {
      return supertype_.get(index);
    }

    // repeated int32 nested_class_name = 7 [packed = true];
    public static final int NESTED_CLASS_NAME_FIELD_NUMBER = 7;
    private java.util.List<java.lang.Integer> nestedClassName_;
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    public java.util.List<java.lang.Integer>
        getNestedClassNameList() {
      return nestedClassName_;
    }
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    public int getNestedClassNameCount() {
      return nestedClassName_.size();
    }
    /**
     * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
     *
     * <pre>
     * we store only names, because the actual information must reside in the corresponding .class files,
     * to be obtainable through reflection at runtime
     * </pre>
     */
    public int getNestedClassName(int index) {
      return nestedClassName_.get(index);
    }
    private int nestedClassNameMemoizedSerializedSize = -1;

    // repeated .org.jetbrains.kotlin.serialization.Callable member = 11;
    public static final int MEMBER_FIELD_NUMBER = 11;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> member_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getMemberList() {
      return member_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getMemberOrBuilderList() {
      return member_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    public int getMemberCount() {
      return member_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index) {
      return member_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
        int index) {
      return member_.get(index);
    }

    // repeated int32 enum_entry = 12 [packed = true];
    public static final int ENUM_ENTRY_FIELD_NUMBER = 12;
    private java.util.List<java.lang.Integer> enumEntry_;
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getEnumEntryList() {
      return enumEntry_;
    }
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    public int getEnumEntryCount() {
      return enumEntry_.size();
    }
    /**
     * <code>repeated int32 enum_entry = 12 [packed = true];</code>
     */
    public int getEnumEntry(int index) {
      return enumEntry_.get(index);
    }
    private int enumEntryMemoizedSerializedSize = -1;

    // optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;
    public static final int PRIMARY_CONSTRUCTOR_FIELD_NUMBER = 13;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor primaryConstructor_;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    public boolean hasPrimaryConstructor() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor getPrimaryConstructor() {
      return primaryConstructor_;
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
     *
     * <pre>
     * This field is present if and only if the class has a primary constructor
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder getPrimaryConstructorOrBuilder() {
      return primaryConstructor_;
    }

    // repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;
    public static final int SECONDARY_CONSTRUCTOR_FIELD_NUMBER = 14;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> secondaryConstructor_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getSecondaryConstructorList() {
      return secondaryConstructor_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getSecondaryConstructorOrBuilderList() {
      return secondaryConstructor_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    public int getSecondaryConstructorCount() {
      return secondaryConstructor_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getSecondaryConstructor(int index) {
      return secondaryConstructor_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getSecondaryConstructorOrBuilder(
        int index) {
      return secondaryConstructor_.get(index);
    }

    private void initFields() {
      flags_ = 0;
      fqName_ = 0;
      companionObjectName_ = 0;
      typeParameter_ = java.util.Collections.emptyList();
      supertype_ = java.util.Collections.emptyList();
      nestedClassName_ = java.util.Collections.emptyList();
      member_ = java.util.Collections.emptyList();
      enumEntry_ = java.util.Collections.emptyList();
      primaryConstructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance();
      secondaryConstructor_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFqName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getTypeParameterCount(); i++) {
        if (!getTypeParameter(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSupertypeCount(); i++) {
        if (!getSupertype(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getMemberCount(); i++) {
        if (!getMember(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPrimaryConstructor()) {
        if (!getPrimaryConstructor().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSecondaryConstructorCount(); i++) {
        if (!getSecondaryConstructor(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!extensionsAreInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      com.google.protobuf.GeneratedMessage
        .ExtendableMessage<org.jetbrains.kotlin.serialization.DebugProtoBuf.Class>.ExtensionWriter extensionWriter =
          newExtensionWriter();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, flags_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(3, fqName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, companionObjectName_);
      }
      for (int i = 0; i < typeParameter_.size(); i++) {
        output.writeMessage(5, typeParameter_.get(i));
      }
      for (int i = 0; i < supertype_.size(); i++) {
        output.writeMessage(6, supertype_.get(i));
      }
      if (getNestedClassNameList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(nestedClassNameMemoizedSerializedSize);
      }
      for (int i = 0; i < nestedClassName_.size(); i++) {
        output.writeInt32NoTag(nestedClassName_.get(i));
      }
      for (int i = 0; i < member_.size(); i++) {
        output.writeMessage(11, member_.get(i));
      }
      if (getEnumEntryList().size() > 0) {
        output.writeRawVarint32(98);
        output.writeRawVarint32(enumEntryMemoizedSerializedSize);
      }
      for (int i = 0; i < enumEntry_.size(); i++) {
        output.writeInt32NoTag(enumEntry_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(13, primaryConstructor_);
      }
      for (int i = 0; i < secondaryConstructor_.size(); i++) {
        output.writeMessage(14, secondaryConstructor_.get(i));
      }
      extensionWriter.writeUntil(200, output);
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, flags_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, fqName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, companionObjectName_);
      }
      for (int i = 0; i < typeParameter_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, typeParameter_.get(i));
      }
      for (int i = 0; i < supertype_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, supertype_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < nestedClassName_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(nestedClassName_.get(i));
        }
        size += dataSize;
        if (!getNestedClassNameList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        nestedClassNameMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < member_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, member_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < enumEntry_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(enumEntry_.get(i));
        }
        size += dataSize;
        if (!getEnumEntryList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        enumEntryMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, primaryConstructor_);
      }
      for (int i = 0; i < secondaryConstructor_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, secondaryConstructor_.get(i));
      }
      size += extensionsSerializedSize();
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Class}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.ExtendableBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, Builder> implements org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTypeParameterFieldBuilder();
          getSupertypeFieldBuilder();
          getMemberFieldBuilder();
          getPrimaryConstructorFieldBuilder();
          getSecondaryConstructorFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        flags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        fqName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        companionObjectName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (typeParameterBuilder_ == null) {
          typeParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          typeParameterBuilder_.clear();
        }
        if (supertypeBuilder_ == null) {
          supertype_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          supertypeBuilder_.clear();
        }
        nestedClassName_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);
        if (memberBuilder_ == null) {
          member_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          memberBuilder_.clear();
        }
        enumEntry_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000080);
        if (primaryConstructorBuilder_ == null) {
          primaryConstructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance();
        } else {
          primaryConstructorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (secondaryConstructorBuilder_ == null) {
          secondaryConstructor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          secondaryConstructorBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Class_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Class result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Class result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Class(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.flags_ = flags_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fqName_ = fqName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.companionObjectName_ = companionObjectName_;
        if (typeParameterBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            typeParameter_ = java.util.Collections.unmodifiableList(typeParameter_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.typeParameter_ = typeParameter_;
        } else {
          result.typeParameter_ = typeParameterBuilder_.build();
        }
        if (supertypeBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            supertype_ = java.util.Collections.unmodifiableList(supertype_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.supertype_ = supertype_;
        } else {
          result.supertype_ = supertypeBuilder_.build();
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          nestedClassName_ = java.util.Collections.unmodifiableList(nestedClassName_);
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.nestedClassName_ = nestedClassName_;
        if (memberBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            member_ = java.util.Collections.unmodifiableList(member_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.member_ = member_;
        } else {
          result.member_ = memberBuilder_.build();
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          enumEntry_ = java.util.Collections.unmodifiableList(enumEntry_);
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.enumEntry_ = enumEntry_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000008;
        }
        if (primaryConstructorBuilder_ == null) {
          result.primaryConstructor_ = primaryConstructor_;
        } else {
          result.primaryConstructor_ = primaryConstructorBuilder_.build();
        }
        if (secondaryConstructorBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            secondaryConstructor_ = java.util.Collections.unmodifiableList(secondaryConstructor_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.secondaryConstructor_ = secondaryConstructor_;
        } else {
          result.secondaryConstructor_ = secondaryConstructorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Class) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Class)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance()) return this;
        if (other.hasFlags()) {
          setFlags(other.getFlags());
        }
        if (other.hasFqName()) {
          setFqName(other.getFqName());
        }
        if (other.hasCompanionObjectName()) {
          setCompanionObjectName(other.getCompanionObjectName());
        }
        if (typeParameterBuilder_ == null) {
          if (!other.typeParameter_.isEmpty()) {
            if (typeParameter_.isEmpty()) {
              typeParameter_ = other.typeParameter_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureTypeParameterIsMutable();
              typeParameter_.addAll(other.typeParameter_);
            }
            onChanged();
          }
        } else {
          if (!other.typeParameter_.isEmpty()) {
            if (typeParameterBuilder_.isEmpty()) {
              typeParameterBuilder_.dispose();
              typeParameterBuilder_ = null;
              typeParameter_ = other.typeParameter_;
              bitField0_ = (bitField0_ & ~0x00000008);
              typeParameterBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTypeParameterFieldBuilder() : null;
            } else {
              typeParameterBuilder_.addAllMessages(other.typeParameter_);
            }
          }
        }
        if (supertypeBuilder_ == null) {
          if (!other.supertype_.isEmpty()) {
            if (supertype_.isEmpty()) {
              supertype_ = other.supertype_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureSupertypeIsMutable();
              supertype_.addAll(other.supertype_);
            }
            onChanged();
          }
        } else {
          if (!other.supertype_.isEmpty()) {
            if (supertypeBuilder_.isEmpty()) {
              supertypeBuilder_.dispose();
              supertypeBuilder_ = null;
              supertype_ = other.supertype_;
              bitField0_ = (bitField0_ & ~0x00000010);
              supertypeBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSupertypeFieldBuilder() : null;
            } else {
              supertypeBuilder_.addAllMessages(other.supertype_);
            }
          }
        }
        if (!other.nestedClassName_.isEmpty()) {
          if (nestedClassName_.isEmpty()) {
            nestedClassName_ = other.nestedClassName_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureNestedClassNameIsMutable();
            nestedClassName_.addAll(other.nestedClassName_);
          }
          onChanged();
        }
        if (memberBuilder_ == null) {
          if (!other.member_.isEmpty()) {
            if (member_.isEmpty()) {
              member_ = other.member_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureMemberIsMutable();
              member_.addAll(other.member_);
            }
            onChanged();
          }
        } else {
          if (!other.member_.isEmpty()) {
            if (memberBuilder_.isEmpty()) {
              memberBuilder_.dispose();
              memberBuilder_ = null;
              member_ = other.member_;
              bitField0_ = (bitField0_ & ~0x00000040);
              memberBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMemberFieldBuilder() : null;
            } else {
              memberBuilder_.addAllMessages(other.member_);
            }
          }
        }
        if (!other.enumEntry_.isEmpty()) {
          if (enumEntry_.isEmpty()) {
            enumEntry_ = other.enumEntry_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureEnumEntryIsMutable();
            enumEntry_.addAll(other.enumEntry_);
          }
          onChanged();
        }
        if (other.hasPrimaryConstructor()) {
          mergePrimaryConstructor(other.getPrimaryConstructor());
        }
        if (secondaryConstructorBuilder_ == null) {
          if (!other.secondaryConstructor_.isEmpty()) {
            if (secondaryConstructor_.isEmpty()) {
              secondaryConstructor_ = other.secondaryConstructor_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureSecondaryConstructorIsMutable();
              secondaryConstructor_.addAll(other.secondaryConstructor_);
            }
            onChanged();
          }
        } else {
          if (!other.secondaryConstructor_.isEmpty()) {
            if (secondaryConstructorBuilder_.isEmpty()) {
              secondaryConstructorBuilder_.dispose();
              secondaryConstructorBuilder_ = null;
              secondaryConstructor_ = other.secondaryConstructor_;
              bitField0_ = (bitField0_ & ~0x00000200);
              secondaryConstructorBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSecondaryConstructorFieldBuilder() : null;
            } else {
              secondaryConstructorBuilder_.addAllMessages(other.secondaryConstructor_);
            }
          }
        }
        this.mergeExtensionFields(other);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFqName()) {
          
          return false;
        }
        for (int i = 0; i < getTypeParameterCount(); i++) {
          if (!getTypeParameter(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getSupertypeCount(); i++) {
          if (!getSupertype(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getMemberCount(); i++) {
          if (!getMember(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasPrimaryConstructor()) {
          if (!getPrimaryConstructor().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getSecondaryConstructorCount(); i++) {
          if (!getSecondaryConstructor(i).isInitialized()) {
            
            return false;
          }
        }
        if (!extensionsAreInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Class parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Class) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 flags = 1 [default = 0];
      private int flags_ ;
      /**
       * <code>optional int32 flags = 1 [default = 0];</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotation
       *ClassKind
       *is_inner
       * </pre>
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 flags = 1 [default = 0];</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotation
       *ClassKind
       *is_inner
       * </pre>
       */
      public int getFlags() {
        return flags_;
      }
      /**
       * <code>optional int32 flags = 1 [default = 0];</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotation
       *ClassKind
       *is_inner
       * </pre>
       */
      public Builder setFlags(int value) {
        bitField0_ |= 0x00000001;
        flags_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 flags = 1 [default = 0];</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotation
       *ClassKind
       *is_inner
       * </pre>
       */
      public Builder clearFlags() {
        bitField0_ = (bitField0_ & ~0x00000001);
        flags_ = 0;
        onChanged();
        return this;
      }

      // required int32 fq_name = 3;
      private int fqName_ ;
      /**
       * <code>required int32 fq_name = 3;</code>
       */
      public boolean hasFqName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 fq_name = 3;</code>
       */
      public int getFqName() {
        return fqName_;
      }
      /**
       * <code>required int32 fq_name = 3;</code>
       */
      public Builder setFqName(int value) {
        bitField0_ |= 0x00000002;
        fqName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 fq_name = 3;</code>
       */
      public Builder clearFqName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fqName_ = 0;
        onChanged();
        return this;
      }

      // optional int32 companion_object_name = 4;
      private int companionObjectName_ ;
      /**
       * <code>optional int32 companion_object_name = 4;</code>
       *
       * <pre>
       * If this field is present, it contains the name of companion object.
       * </pre>
       */
      public boolean hasCompanionObjectName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int32 companion_object_name = 4;</code>
       *
       * <pre>
       * If this field is present, it contains the name of companion object.
       * </pre>
       */
      public int getCompanionObjectName() {
        return companionObjectName_;
      }
      /**
       * <code>optional int32 companion_object_name = 4;</code>
       *
       * <pre>
       * If this field is present, it contains the name of companion object.
       * </pre>
       */
      public Builder setCompanionObjectName(int value) {
        bitField0_ |= 0x00000004;
        companionObjectName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 companion_object_name = 4;</code>
       *
       * <pre>
       * If this field is present, it contains the name of companion object.
       * </pre>
       */
      public Builder clearCompanionObjectName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        companionObjectName_ = 0;
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> typeParameter_ =
        java.util.Collections.emptyList();
      private void ensureTypeParameterIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          typeParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter>(typeParameter_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> typeParameterBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> getTypeParameterList() {
        if (typeParameterBuilder_ == null) {
          return java.util.Collections.unmodifiableList(typeParameter_);
        } else {
          return typeParameterBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public int getTypeParameterCount() {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.size();
        } else {
          return typeParameterBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index) {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.get(index);
        } else {
          return typeParameterBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder setTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.set(index, value);
          onChanged();
        } else {
          typeParameterBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder setTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.set(index, builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder addTypeParameter(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.add(value);
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder addTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.add(index, value);
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder addTypeParameter(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.add(builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder addTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.add(index, builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder addAllTypeParameter(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> values) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          super.addAll(values, typeParameter_);
          onChanged();
        } else {
          typeParameterBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder clearTypeParameter() {
        if (typeParameterBuilder_ == null) {
          typeParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          typeParameterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public Builder removeTypeParameter(int index) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.remove(index);
          onChanged();
        } else {
          typeParameterBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder getTypeParameterBuilder(
          int index) {
        return getTypeParameterFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
          int index) {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.get(index);  } else {
          return typeParameterBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
           getTypeParameterOrBuilderList() {
        if (typeParameterBuilder_ != null) {
          return typeParameterBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(typeParameter_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder addTypeParameterBuilder() {
        return getTypeParameterFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder addTypeParameterBuilder(
          int index) {
        return getTypeParameterFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 5;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder> 
           getTypeParameterBuilderList() {
        return getTypeParameterFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
          getTypeParameterFieldBuilder() {
        if (typeParameterBuilder_ == null) {
          typeParameterBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder>(
                  typeParameter_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          typeParameter_ = null;
        }
        return typeParameterBuilder_;
      }

      // repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> supertype_ =
        java.util.Collections.emptyList();
      private void ensureSupertypeIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          supertype_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type>(supertype_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> supertypeBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> getSupertypeList() {
        if (supertypeBuilder_ == null) {
          return java.util.Collections.unmodifiableList(supertype_);
        } else {
          return supertypeBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public int getSupertypeCount() {
        if (supertypeBuilder_ == null) {
          return supertype_.size();
        } else {
          return supertypeBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getSupertype(int index) {
        if (supertypeBuilder_ == null) {
          return supertype_.get(index);
        } else {
          return supertypeBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder setSupertype(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (supertypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSupertypeIsMutable();
          supertype_.set(index, value);
          onChanged();
        } else {
          supertypeBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder setSupertype(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (supertypeBuilder_ == null) {
          ensureSupertypeIsMutable();
          supertype_.set(index, builderForValue.build());
          onChanged();
        } else {
          supertypeBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder addSupertype(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (supertypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSupertypeIsMutable();
          supertype_.add(value);
          onChanged();
        } else {
          supertypeBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder addSupertype(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (supertypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSupertypeIsMutable();
          supertype_.add(index, value);
          onChanged();
        } else {
          supertypeBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder addSupertype(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (supertypeBuilder_ == null) {
          ensureSupertypeIsMutable();
          supertype_.add(builderForValue.build());
          onChanged();
        } else {
          supertypeBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder addSupertype(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (supertypeBuilder_ == null) {
          ensureSupertypeIsMutable();
          supertype_.add(index, builderForValue.build());
          onChanged();
        } else {
          supertypeBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder addAllSupertype(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Type> values) {
        if (supertypeBuilder_ == null) {
          ensureSupertypeIsMutable();
          super.addAll(values, supertype_);
          onChanged();
        } else {
          supertypeBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder clearSupertype() {
        if (supertypeBuilder_ == null) {
          supertype_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          supertypeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public Builder removeSupertype(int index) {
        if (supertypeBuilder_ == null) {
          ensureSupertypeIsMutable();
          supertype_.remove(index);
          onChanged();
        } else {
          supertypeBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getSupertypeBuilder(
          int index) {
        return getSupertypeFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getSupertypeOrBuilder(
          int index) {
        if (supertypeBuilder_ == null) {
          return supertype_.get(index);  } else {
          return supertypeBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
           getSupertypeOrBuilderList() {
        if (supertypeBuilder_ != null) {
          return supertypeBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(supertype_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder addSupertypeBuilder() {
        return getSupertypeFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder addSupertypeBuilder(
          int index) {
        return getSupertypeFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Type supertype = 6;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder> 
           getSupertypeBuilderList() {
        return getSupertypeFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
          getSupertypeFieldBuilder() {
        if (supertypeBuilder_ == null) {
          supertypeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                  supertype_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          supertype_ = null;
        }
        return supertypeBuilder_;
      }

      // repeated int32 nested_class_name = 7 [packed = true];
      private java.util.List<java.lang.Integer> nestedClassName_ = java.util.Collections.emptyList();
      private void ensureNestedClassNameIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          nestedClassName_ = new java.util.ArrayList<java.lang.Integer>(nestedClassName_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public java.util.List<java.lang.Integer>
          getNestedClassNameList() {
        return java.util.Collections.unmodifiableList(nestedClassName_);
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public int getNestedClassNameCount() {
        return nestedClassName_.size();
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public int getNestedClassName(int index) {
        return nestedClassName_.get(index);
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public Builder setNestedClassName(
          int index, int value) {
        ensureNestedClassNameIsMutable();
        nestedClassName_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public Builder addNestedClassName(int value) {
        ensureNestedClassNameIsMutable();
        nestedClassName_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public Builder addAllNestedClassName(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureNestedClassNameIsMutable();
        super.addAll(values, nestedClassName_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 nested_class_name = 7 [packed = true];</code>
       *
       * <pre>
       * we store only names, because the actual information must reside in the corresponding .class files,
       * to be obtainable through reflection at runtime
       * </pre>
       */
      public Builder clearNestedClassName() {
        nestedClassName_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.Callable member = 11;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> member_ =
        java.util.Collections.emptyList();
      private void ensureMemberIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          member_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>(member_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> memberBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getMemberList() {
        if (memberBuilder_ == null) {
          return java.util.Collections.unmodifiableList(member_);
        } else {
          return memberBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public int getMemberCount() {
        if (memberBuilder_ == null) {
          return member_.size();
        } else {
          return memberBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index) {
        if (memberBuilder_ == null) {
          return member_.get(index);
        } else {
          return memberBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.set(index, value);
          onChanged();
        } else {
          memberBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.set(index, builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder addMember(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.add(value);
          onChanged();
        } else {
          memberBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.add(index, value);
          onChanged();
        } else {
          memberBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder addMember(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.add(builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.add(index, builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder addAllMember(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> values) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          super.addAll(values, member_);
          onChanged();
        } else {
          memberBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder clearMember() {
        if (memberBuilder_ == null) {
          member_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          memberBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public Builder removeMember(int index) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.remove(index);
          onChanged();
        } else {
          memberBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder getMemberBuilder(
          int index) {
        return getMemberFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
          int index) {
        if (memberBuilder_ == null) {
          return member_.get(index);  } else {
          return memberBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
           getMemberOrBuilderList() {
        if (memberBuilder_ != null) {
          return memberBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(member_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addMemberBuilder() {
        return getMemberFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addMemberBuilder(
          int index) {
        return getMemberFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 11;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder> 
           getMemberBuilderList() {
        return getMemberFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
          getMemberFieldBuilder() {
        if (memberBuilder_ == null) {
          memberBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder>(
                  member_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          member_ = null;
        }
        return memberBuilder_;
      }

      // repeated int32 enum_entry = 12 [packed = true];
      private java.util.List<java.lang.Integer> enumEntry_ = java.util.Collections.emptyList();
      private void ensureEnumEntryIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          enumEntry_ = new java.util.ArrayList<java.lang.Integer>(enumEntry_);
          bitField0_ |= 0x00000080;
         }
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getEnumEntryList() {
        return java.util.Collections.unmodifiableList(enumEntry_);
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public int getEnumEntryCount() {
        return enumEntry_.size();
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public int getEnumEntry(int index) {
        return enumEntry_.get(index);
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public Builder setEnumEntry(
          int index, int value) {
        ensureEnumEntryIsMutable();
        enumEntry_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public Builder addEnumEntry(int value) {
        ensureEnumEntryIsMutable();
        enumEntry_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public Builder addAllEnumEntry(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureEnumEntryIsMutable();
        super.addAll(values, enumEntry_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 enum_entry = 12 [packed = true];</code>
       */
      public Builder clearEnumEntry() {
        enumEntry_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }

      // optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor primaryConstructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder> primaryConstructorBuilder_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public boolean hasPrimaryConstructor() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor getPrimaryConstructor() {
        if (primaryConstructorBuilder_ == null) {
          return primaryConstructor_;
        } else {
          return primaryConstructorBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public Builder setPrimaryConstructor(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor value) {
        if (primaryConstructorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          primaryConstructor_ = value;
          onChanged();
        } else {
          primaryConstructorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public Builder setPrimaryConstructor(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder builderForValue) {
        if (primaryConstructorBuilder_ == null) {
          primaryConstructor_ = builderForValue.build();
          onChanged();
        } else {
          primaryConstructorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public Builder mergePrimaryConstructor(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor value) {
        if (primaryConstructorBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              primaryConstructor_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance()) {
            primaryConstructor_ =
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.newBuilder(primaryConstructor_).mergeFrom(value).buildPartial();
          } else {
            primaryConstructor_ = value;
          }
          onChanged();
        } else {
          primaryConstructorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public Builder clearPrimaryConstructor() {
        if (primaryConstructorBuilder_ == null) {
          primaryConstructor_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.getDefaultInstance();
          onChanged();
        } else {
          primaryConstructorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder getPrimaryConstructorBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getPrimaryConstructorFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder getPrimaryConstructorOrBuilder() {
        if (primaryConstructorBuilder_ != null) {
          return primaryConstructorBuilder_.getMessageOrBuilder();
        } else {
          return primaryConstructor_;
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Class.PrimaryConstructor primary_constructor = 13;</code>
       *
       * <pre>
       * This field is present if and only if the class has a primary constructor
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder> 
          getPrimaryConstructorFieldBuilder() {
        if (primaryConstructorBuilder_ == null) {
          primaryConstructorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructor.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PrimaryConstructorOrBuilder>(
                  primaryConstructor_,
                  getParentForChildren(),
                  isClean());
          primaryConstructor_ = null;
        }
        return primaryConstructorBuilder_;
      }

      // repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> secondaryConstructor_ =
        java.util.Collections.emptyList();
      private void ensureSecondaryConstructorIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          secondaryConstructor_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>(secondaryConstructor_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> secondaryConstructorBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getSecondaryConstructorList() {
        if (secondaryConstructorBuilder_ == null) {
          return java.util.Collections.unmodifiableList(secondaryConstructor_);
        } else {
          return secondaryConstructorBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public int getSecondaryConstructorCount() {
        if (secondaryConstructorBuilder_ == null) {
          return secondaryConstructor_.size();
        } else {
          return secondaryConstructorBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getSecondaryConstructor(int index) {
        if (secondaryConstructorBuilder_ == null) {
          return secondaryConstructor_.get(index);
        } else {
          return secondaryConstructorBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder setSecondaryConstructor(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (secondaryConstructorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.set(index, value);
          onChanged();
        } else {
          secondaryConstructorBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder setSecondaryConstructor(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (secondaryConstructorBuilder_ == null) {
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.set(index, builderForValue.build());
          onChanged();
        } else {
          secondaryConstructorBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder addSecondaryConstructor(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (secondaryConstructorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.add(value);
          onChanged();
        } else {
          secondaryConstructorBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder addSecondaryConstructor(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (secondaryConstructorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.add(index, value);
          onChanged();
        } else {
          secondaryConstructorBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder addSecondaryConstructor(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (secondaryConstructorBuilder_ == null) {
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.add(builderForValue.build());
          onChanged();
        } else {
          secondaryConstructorBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder addSecondaryConstructor(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (secondaryConstructorBuilder_ == null) {
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.add(index, builderForValue.build());
          onChanged();
        } else {
          secondaryConstructorBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder addAllSecondaryConstructor(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> values) {
        if (secondaryConstructorBuilder_ == null) {
          ensureSecondaryConstructorIsMutable();
          super.addAll(values, secondaryConstructor_);
          onChanged();
        } else {
          secondaryConstructorBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder clearSecondaryConstructor() {
        if (secondaryConstructorBuilder_ == null) {
          secondaryConstructor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          secondaryConstructorBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public Builder removeSecondaryConstructor(int index) {
        if (secondaryConstructorBuilder_ == null) {
          ensureSecondaryConstructorIsMutable();
          secondaryConstructor_.remove(index);
          onChanged();
        } else {
          secondaryConstructorBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder getSecondaryConstructorBuilder(
          int index) {
        return getSecondaryConstructorFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getSecondaryConstructorOrBuilder(
          int index) {
        if (secondaryConstructorBuilder_ == null) {
          return secondaryConstructor_.get(index);  } else {
          return secondaryConstructorBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
           getSecondaryConstructorOrBuilderList() {
        if (secondaryConstructorBuilder_ != null) {
          return secondaryConstructorBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(secondaryConstructor_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addSecondaryConstructorBuilder() {
        return getSecondaryConstructorFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addSecondaryConstructorBuilder(
          int index) {
        return getSecondaryConstructorFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable secondary_constructor = 14;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder> 
           getSecondaryConstructorBuilderList() {
        return getSecondaryConstructorFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
          getSecondaryConstructorFieldBuilder() {
        if (secondaryConstructorBuilder_ == null) {
          secondaryConstructorBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder>(
                  secondaryConstructor_,
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          secondaryConstructor_ = null;
        }
        return secondaryConstructorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Class)
    }

    static {
      defaultInstance = new Class(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Class)
  }

  public interface PackageOrBuilder extends
      com.google.protobuf.GeneratedMessage.
          ExtendableMessageOrBuilder<Package> {

    // repeated .org.jetbrains.kotlin.serialization.Callable member = 1;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> 
        getMemberList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    int getMemberCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getMemberOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.Package}
   */
  public static final class Package extends
      com.google.protobuf.GeneratedMessage.ExtendableMessage<
        Package> implements PackageOrBuilder {
    // Use Package.newBuilder() to construct.
    private Package(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, ?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Package(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Package defaultInstance;
    public static Package getDefaultInstance() {
      return defaultInstance;
    }

    public Package getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Package(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                member_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>();
                mutable_bitField0_ |= 0x00000001;
              }
              member_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          member_ = java.util.Collections.unmodifiableList(member_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Package_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Package_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder.class);
    }

    public static com.google.protobuf.Parser<Package> PARSER =
        new com.google.protobuf.AbstractParser<Package>() {
      public Package parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Package(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Package> getParserForType() {
      return PARSER;
    }

    // repeated .org.jetbrains.kotlin.serialization.Callable member = 1;
    public static final int MEMBER_FIELD_NUMBER = 1;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> member_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getMemberList() {
      return member_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
        getMemberOrBuilderList() {
      return member_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    public int getMemberCount() {
      return member_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index) {
      return member_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
        int index) {
      return member_.get(index);
    }

    private void initFields() {
      member_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getMemberCount(); i++) {
        if (!getMember(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!extensionsAreInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      com.google.protobuf.GeneratedMessage
        .ExtendableMessage<org.jetbrains.kotlin.serialization.DebugProtoBuf.Package>.ExtensionWriter extensionWriter =
          newExtensionWriter();
      for (int i = 0; i < member_.size(); i++) {
        output.writeMessage(1, member_.get(i));
      }
      extensionWriter.writeUntil(200, output);
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < member_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, member_.get(i));
      }
      size += extensionsSerializedSize();
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Package prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Package}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.ExtendableBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, Builder> implements org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Package_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Package_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMemberFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (memberBuilder_ == null) {
          member_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          memberBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Package_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Package result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Package result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Package(this);
        int from_bitField0_ = bitField0_;
        if (memberBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            member_ = java.util.Collections.unmodifiableList(member_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.member_ = member_;
        } else {
          result.member_ = memberBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Package) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Package)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Package other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance()) return this;
        if (memberBuilder_ == null) {
          if (!other.member_.isEmpty()) {
            if (member_.isEmpty()) {
              member_ = other.member_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMemberIsMutable();
              member_.addAll(other.member_);
            }
            onChanged();
          }
        } else {
          if (!other.member_.isEmpty()) {
            if (memberBuilder_.isEmpty()) {
              memberBuilder_.dispose();
              memberBuilder_ = null;
              member_ = other.member_;
              bitField0_ = (bitField0_ & ~0x00000001);
              memberBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMemberFieldBuilder() : null;
            } else {
              memberBuilder_.addAllMessages(other.member_);
            }
          }
        }
        this.mergeExtensionFields(other);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getMemberCount(); i++) {
          if (!getMember(i).isInitialized()) {
            
            return false;
          }
        }
        if (!extensionsAreInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Package parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Package) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .org.jetbrains.kotlin.serialization.Callable member = 1;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> member_ =
        java.util.Collections.emptyList();
      private void ensureMemberIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          member_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>(member_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> memberBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> getMemberList() {
        if (memberBuilder_ == null) {
          return java.util.Collections.unmodifiableList(member_);
        } else {
          return memberBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public int getMemberCount() {
        if (memberBuilder_ == null) {
          return member_.size();
        } else {
          return memberBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getMember(int index) {
        if (memberBuilder_ == null) {
          return member_.get(index);
        } else {
          return memberBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.set(index, value);
          onChanged();
        } else {
          memberBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.set(index, builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder addMember(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.add(value);
          onChanged();
        } else {
          memberBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable value) {
        if (memberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMemberIsMutable();
          member_.add(index, value);
          onChanged();
        } else {
          memberBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder addMember(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.add(builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder builderForValue) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.add(index, builderForValue.build());
          onChanged();
        } else {
          memberBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder addAllMember(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable> values) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          super.addAll(values, member_);
          onChanged();
        } else {
          memberBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder clearMember() {
        if (memberBuilder_ == null) {
          member_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          memberBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public Builder removeMember(int index) {
        if (memberBuilder_ == null) {
          ensureMemberIsMutable();
          member_.remove(index);
          onChanged();
        } else {
          memberBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder getMemberBuilder(
          int index) {
        return getMemberFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder getMemberOrBuilder(
          int index) {
        if (memberBuilder_ == null) {
          return member_.get(index);  } else {
          return memberBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
           getMemberOrBuilderList() {
        if (memberBuilder_ != null) {
          return memberBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(member_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addMemberBuilder() {
        return getMemberFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder addMemberBuilder(
          int index) {
        return getMemberFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable member = 1;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder> 
           getMemberBuilderList() {
        return getMemberFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder> 
          getMemberFieldBuilder() {
        if (memberBuilder_ == null) {
          memberBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder>(
                  member_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          member_ = null;
        }
        return memberBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Package)
    }

    static {
      defaultInstance = new Package(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Package)
  }

  public interface CallableOrBuilder extends
      com.google.protobuf.GeneratedMessage.
          ExtendableMessageOrBuilder<Callable> {

    // optional int32 flags = 1;
    /**
     * <code>optional int32 flags = 1;</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotations
     *CallableKind
     *MemberKind
     *hasGetter
     *hasSetter
     *hasConstant
     * </pre>
     */
    boolean hasFlags();
    /**
     * <code>optional int32 flags = 1;</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotations
     *CallableKind
     *MemberKind
     *hasGetter
     *hasSetter
     *hasConstant
     * </pre>
     */
    int getFlags();

    // optional int32 getter_flags = 9;
    /**
     * <code>optional int32 getter_flags = 9;</code>
     *
     * <pre>
     *
     *isNotDefault
     *Visibility
     *Modality
     *has_annotations
     * </pre>
     */
    boolean hasGetterFlags();
    /**
     * <code>optional int32 getter_flags = 9;</code>
     *
     * <pre>
     *
     *isNotDefault
     *Visibility
     *Modality
     *has_annotations
     * </pre>
     */
    int getGetterFlags();

    // optional int32 setter_flags = 10;
    /**
     * <code>optional int32 setter_flags = 10;</code>
     */
    boolean hasSetterFlags();
    /**
     * <code>optional int32 setter_flags = 10;</code>
     */
    int getSetterFlags();

    // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> 
        getTypeParameterList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    int getTypeParameterCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
        getTypeParameterOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
        int index);

    // optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    boolean hasReceiverType();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReceiverType();
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReceiverTypeOrBuilder();

    // required int32 name = 6;
    /**
     * <code>required int32 name = 6;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    boolean hasName();
    /**
     * <code>required int32 name = 6;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    int getName();

    // repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> 
        getValueParameterList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter getValueParameter(int index);
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    int getValueParameterCount();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder> 
        getValueParameterOrBuilderList();
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder getValueParameterOrBuilder(
        int index);

    // required .org.jetbrains.kotlin.serialization.Type return_type = 8;
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    boolean hasReturnType();
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReturnType();
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReturnTypeOrBuilder();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.Callable}
   */
  public static final class Callable extends
      com.google.protobuf.GeneratedMessage.ExtendableMessage<
        Callable> implements CallableOrBuilder {
    // Use Callable.newBuilder() to construct.
    private Callable(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, ?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Callable(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Callable defaultInstance;
    public static Callable getDefaultInstance() {
      return defaultInstance;
    }

    public Callable getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Callable(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              flags_ = input.readInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                typeParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter>();
                mutable_bitField0_ |= 0x00000008;
              }
              typeParameter_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = receiverType_.toBuilder();
              }
              receiverType_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(receiverType_);
                receiverType_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              name_ = input.readInt32();
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                valueParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter>();
                mutable_bitField0_ |= 0x00000040;
              }
              valueParameter_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = returnType_.toBuilder();
              }
              returnType_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(returnType_);
                returnType_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 72: {
              bitField0_ |= 0x00000002;
              getterFlags_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000004;
              setterFlags_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          typeParameter_ = java.util.Collections.unmodifiableList(typeParameter_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          valueParameter_ = java.util.Collections.unmodifiableList(valueParameter_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder.class);
    }

    public static com.google.protobuf.Parser<Callable> PARSER =
        new com.google.protobuf.AbstractParser<Callable>() {
      public Callable parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Callable(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Callable> getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.Callable.MemberKind}
     */
    public enum MemberKind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>DECLARATION = 0;</code>
       *
       * <pre>
       * 2 bits
       * </pre>
       */
      DECLARATION(0, 0),
      /**
       * <code>FAKE_OVERRIDE = 1;</code>
       */
      FAKE_OVERRIDE(1, 1),
      /**
       * <code>DELEGATION = 2;</code>
       */
      DELEGATION(2, 2),
      /**
       * <code>SYNTHESIZED = 3;</code>
       */
      SYNTHESIZED(3, 3),
      ;

      /**
       * <code>DECLARATION = 0;</code>
       *
       * <pre>
       * 2 bits
       * </pre>
       */
      public static final int DECLARATION_VALUE = 0;
      /**
       * <code>FAKE_OVERRIDE = 1;</code>
       */
      public static final int FAKE_OVERRIDE_VALUE = 1;
      /**
       * <code>DELEGATION = 2;</code>
       */
      public static final int DELEGATION_VALUE = 2;
      /**
       * <code>SYNTHESIZED = 3;</code>
       */
      public static final int SYNTHESIZED_VALUE = 3;


      public final int getNumber() { return value; }

      public static MemberKind valueOf(int value) {
        switch (value) {
          case 0: return DECLARATION;
          case 1: return FAKE_OVERRIDE;
          case 2: return DELEGATION;
          case 3: return SYNTHESIZED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<MemberKind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<MemberKind>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<MemberKind>() {
              public MemberKind findValueByNumber(int number) {
                return MemberKind.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDescriptor().getEnumTypes().get(0);
      }

      private static final MemberKind[] VALUES = values();

      public static MemberKind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private MemberKind(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Callable.MemberKind)
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.Callable.CallableKind}
     */
    public enum CallableKind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>FUN = 0;</code>
       *
       * <pre>
       * 2 bits
       * </pre>
       */
      FUN(0, 0),
      /**
       * <code>VAL = 1;</code>
       */
      VAL(1, 1),
      /**
       * <code>VAR = 2;</code>
       */
      VAR(2, 2),
      /**
       * <code>CONSTRUCTOR = 3;</code>
       */
      CONSTRUCTOR(3, 3),
      ;

      /**
       * <code>FUN = 0;</code>
       *
       * <pre>
       * 2 bits
       * </pre>
       */
      public static final int FUN_VALUE = 0;
      /**
       * <code>VAL = 1;</code>
       */
      public static final int VAL_VALUE = 1;
      /**
       * <code>VAR = 2;</code>
       */
      public static final int VAR_VALUE = 2;
      /**
       * <code>CONSTRUCTOR = 3;</code>
       */
      public static final int CONSTRUCTOR_VALUE = 3;


      public final int getNumber() { return value; }

      public static CallableKind valueOf(int value) {
        switch (value) {
          case 0: return FUN;
          case 1: return VAL;
          case 2: return VAR;
          case 3: return CONSTRUCTOR;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<CallableKind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<CallableKind>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<CallableKind>() {
              public CallableKind findValueByNumber(int number) {
                return CallableKind.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDescriptor().getEnumTypes().get(1);
      }

      private static final CallableKind[] VALUES = values();

      public static CallableKind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private CallableKind(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.Callable.CallableKind)
    }

    public interface ValueParameterOrBuilder extends
        com.google.protobuf.GeneratedMessage.
            ExtendableMessageOrBuilder<ValueParameter> {

      // optional int32 flags = 1;
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *declaresDefault
       *has_annotations
       * </pre>
       */
      boolean hasFlags();
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *declaresDefault
       *has_annotations
       * </pre>
       */
      int getFlags();

      // required int32 name = 2;
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      boolean hasName();
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      int getName();

      // required .org.jetbrains.kotlin.serialization.Type type = 3;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      boolean hasType();
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType();
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder();

      // optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      boolean hasVarargElementType();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getVarargElementType();
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getVarargElementTypeOrBuilder();
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Callable.ValueParameter}
     */
    public static final class ValueParameter extends
        com.google.protobuf.GeneratedMessage.ExtendableMessage<
          ValueParameter> implements ValueParameterOrBuilder {
      // Use ValueParameter.newBuilder() to construct.
      private ValueParameter(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter, ?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ValueParameter(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final ValueParameter defaultInstance;
      public static ValueParameter getDefaultInstance() {
        return defaultInstance;
      }

      public ValueParameter getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private ValueParameter(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                flags_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                name_ = input.readInt32();
                break;
              }
              case 26: {
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = type_.toBuilder();
                }
                type_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(type_);
                  type_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
              case 34: {
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = varargElementType_.toBuilder();
                }
                varargElementType_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(varargElementType_);
                  varargElementType_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder.class);
      }

      public static com.google.protobuf.Parser<ValueParameter> PARSER =
          new com.google.protobuf.AbstractParser<ValueParameter>() {
        public ValueParameter parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ValueParameter(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<ValueParameter> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 flags = 1;
      public static final int FLAGS_FIELD_NUMBER = 1;
      private int flags_;
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *declaresDefault
       *has_annotations
       * </pre>
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *declaresDefault
       *has_annotations
       * </pre>
       */
      public int getFlags() {
        return flags_;
      }

      // required int32 name = 2;
      public static final int NAME_FIELD_NUMBER = 2;
      private int name_;
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 name = 2;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public int getName() {
        return name_;
      }

      // required .org.jetbrains.kotlin.serialization.Type type = 3;
      public static final int TYPE_FIELD_NUMBER = 3;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type type_;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType() {
        return type_;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder() {
        return type_;
      }

      // optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;
      public static final int VARARG_ELEMENT_TYPE_FIELD_NUMBER = 4;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type varargElementType_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      public boolean hasVarargElementType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getVarargElementType() {
        return varargElementType_;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getVarargElementTypeOrBuilder() {
        return varargElementType_;
      }

      private void initFields() {
        flags_ = 0;
        name_ = 0;
        type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        varargElementType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasType()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getType().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasVarargElementType()) {
          if (!getVarargElementType().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (!extensionsAreInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        com.google.protobuf.GeneratedMessage
          .ExtendableMessage<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter>.ExtensionWriter extensionWriter =
            newExtensionWriter();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, flags_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, name_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, type_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, varargElementType_);
        }
        extensionWriter.writeUntil(200, output);
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, flags_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, name_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, type_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, varargElementType_);
        }
        size += extensionsSerializedSize();
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code org.jetbrains.kotlin.serialization.Callable.ValueParameter}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.ExtendableBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter, Builder> implements org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder.class);
        }

        // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getTypeFieldBuilder();
            getVarargElementTypeFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          flags_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          name_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (typeBuilder_ == null) {
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          } else {
            typeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (varargElementTypeBuilder_ == null) {
            varargElementType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          } else {
            varargElementTypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter getDefaultInstanceForType() {
          return org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.getDefaultInstance();
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter build() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter buildPartial() {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.flags_ = flags_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.name_ = name_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (typeBuilder_ == null) {
            result.type_ = type_;
          } else {
            result.type_ = typeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (varargElementTypeBuilder_ == null) {
            result.varargElementType_ = varargElementType_;
          } else {
            result.varargElementType_ = varargElementTypeBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter) {
            return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter other) {
          if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.getDefaultInstance()) return this;
          if (other.hasFlags()) {
            setFlags(other.getFlags());
          }
          if (other.hasName()) {
            setName(other.getName());
          }
          if (other.hasType()) {
            mergeType(other.getType());
          }
          if (other.hasVarargElementType()) {
            mergeVarargElementType(other.getVarargElementType());
          }
          this.mergeExtensionFields(other);
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasName()) {
            
            return false;
          }
          if (!hasType()) {
            
            return false;
          }
          if (!getType().isInitialized()) {
            
            return false;
          }
          if (hasVarargElementType()) {
            if (!getVarargElementType().isInitialized()) {
              
              return false;
            }
          }
          if (!extensionsAreInitialized()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 flags = 1;
        private int flags_ ;
        /**
         * <code>optional int32 flags = 1;</code>
         *
         * <pre>
         *
         *declaresDefault
         *has_annotations
         * </pre>
         */
        public boolean hasFlags() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int32 flags = 1;</code>
         *
         * <pre>
         *
         *declaresDefault
         *has_annotations
         * </pre>
         */
        public int getFlags() {
          return flags_;
        }
        /**
         * <code>optional int32 flags = 1;</code>
         *
         * <pre>
         *
         *declaresDefault
         *has_annotations
         * </pre>
         */
        public Builder setFlags(int value) {
          bitField0_ |= 0x00000001;
          flags_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 flags = 1;</code>
         *
         * <pre>
         *
         *declaresDefault
         *has_annotations
         * </pre>
         */
        public Builder clearFlags() {
          bitField0_ = (bitField0_ & ~0x00000001);
          flags_ = 0;
          onChanged();
          return this;
        }

        // required int32 name = 2;
        private int name_ ;
        /**
         * <code>required int32 name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public boolean hasName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int32 name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public int getName() {
          return name_;
        }
        /**
         * <code>required int32 name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public Builder setName(int value) {
          bitField0_ |= 0x00000002;
          name_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 name = 2;</code>
         *
         * <pre>
         * Id in the StringTable
         * </pre>
         */
        public Builder clearName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          name_ = 0;
          onChanged();
          return this;
        }

        // required .org.jetbrains.kotlin.serialization.Type type = 3;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> typeBuilder_;
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public boolean hasType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getType() {
          if (typeBuilder_ == null) {
            return type_;
          } else {
            return typeBuilder_.getMessage();
          }
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public Builder setType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (typeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            type_ = value;
            onChanged();
          } else {
            typeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public Builder setType(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
          if (typeBuilder_ == null) {
            type_ = builderForValue.build();
            onChanged();
          } else {
            typeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public Builder mergeType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (typeBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                type_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
              type_ =
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(type_).mergeFrom(value).buildPartial();
            } else {
              type_ = value;
            }
            onChanged();
          } else {
            typeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public Builder clearType() {
          if (typeBuilder_ == null) {
            type_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
            onChanged();
          } else {
            typeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getTypeBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getTypeFieldBuilder().getBuilder();
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getTypeOrBuilder() {
          if (typeBuilder_ != null) {
            return typeBuilder_.getMessageOrBuilder();
          } else {
            return type_;
          }
        }
        /**
         * <code>required .org.jetbrains.kotlin.serialization.Type type = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
            getTypeFieldBuilder() {
          if (typeBuilder_ == null) {
            typeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                    type_,
                    getParentForChildren(),
                    isClean());
            type_ = null;
          }
          return typeBuilder_;
        }

        // optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;
        private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type varargElementType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> varargElementTypeBuilder_;
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public boolean hasVarargElementType() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getVarargElementType() {
          if (varargElementTypeBuilder_ == null) {
            return varargElementType_;
          } else {
            return varargElementTypeBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public Builder setVarargElementType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (varargElementTypeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            varargElementType_ = value;
            onChanged();
          } else {
            varargElementTypeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public Builder setVarargElementType(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
          if (varargElementTypeBuilder_ == null) {
            varargElementType_ = builderForValue.build();
            onChanged();
          } else {
            varargElementTypeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public Builder mergeVarargElementType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
          if (varargElementTypeBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                varargElementType_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
              varargElementType_ =
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(varargElementType_).mergeFrom(value).buildPartial();
            } else {
              varargElementType_ = value;
            }
            onChanged();
          } else {
            varargElementTypeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public Builder clearVarargElementType() {
          if (varargElementTypeBuilder_ == null) {
            varargElementType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
            onChanged();
          } else {
            varargElementTypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getVarargElementTypeBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getVarargElementTypeFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getVarargElementTypeOrBuilder() {
          if (varargElementTypeBuilder_ != null) {
            return varargElementTypeBuilder_.getMessageOrBuilder();
          } else {
            return varargElementType_;
          }
        }
        /**
         * <code>optional .org.jetbrains.kotlin.serialization.Type vararg_element_type = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilder<
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
            getVarargElementTypeFieldBuilder() {
          if (varargElementTypeBuilder_ == null) {
            varargElementTypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                    varargElementType_,
                    getParentForChildren(),
                    isClean());
            varargElementType_ = null;
          }
          return varargElementTypeBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Callable.ValueParameter)
      }

      static {
        defaultInstance = new ValueParameter(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Callable.ValueParameter)
    }

    private int bitField0_;
    // optional int32 flags = 1;
    public static final int FLAGS_FIELD_NUMBER = 1;
    private int flags_;
    /**
     * <code>optional int32 flags = 1;</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotations
     *CallableKind
     *MemberKind
     *hasGetter
     *hasSetter
     *hasConstant
     * </pre>
     */
    public boolean hasFlags() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 flags = 1;</code>
     *
     * <pre>
     *
     *Visibility
     *Modality
     *has_annotations
     *CallableKind
     *MemberKind
     *hasGetter
     *hasSetter
     *hasConstant
     * </pre>
     */
    public int getFlags() {
      return flags_;
    }

    // optional int32 getter_flags = 9;
    public static final int GETTER_FLAGS_FIELD_NUMBER = 9;
    private int getterFlags_;
    /**
     * <code>optional int32 getter_flags = 9;</code>
     *
     * <pre>
     *
     *isNotDefault
     *Visibility
     *Modality
     *has_annotations
     * </pre>
     */
    public boolean hasGetterFlags() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int32 getter_flags = 9;</code>
     *
     * <pre>
     *
     *isNotDefault
     *Visibility
     *Modality
     *has_annotations
     * </pre>
     */
    public int getGetterFlags() {
      return getterFlags_;
    }

    // optional int32 setter_flags = 10;
    public static final int SETTER_FLAGS_FIELD_NUMBER = 10;
    private int setterFlags_;
    /**
     * <code>optional int32 setter_flags = 10;</code>
     */
    public boolean hasSetterFlags() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int32 setter_flags = 10;</code>
     */
    public int getSetterFlags() {
      return setterFlags_;
    }

    // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;
    public static final int TYPE_PARAMETER_FIELD_NUMBER = 4;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> typeParameter_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> getTypeParameterList() {
      return typeParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
        getTypeParameterOrBuilderList() {
      return typeParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    public int getTypeParameterCount() {
      return typeParameter_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index) {
      return typeParameter_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
        int index) {
      return typeParameter_.get(index);
    }

    // optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;
    public static final int RECEIVER_TYPE_FIELD_NUMBER = 5;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type receiverType_;
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    public boolean hasReceiverType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReceiverType() {
      return receiverType_;
    }
    /**
     * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReceiverTypeOrBuilder() {
      return receiverType_;
    }

    // required int32 name = 6;
    public static final int NAME_FIELD_NUMBER = 6;
    private int name_;
    /**
     * <code>required int32 name = 6;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 name = 6;</code>
     *
     * <pre>
     * Id in the StringTable
     * </pre>
     */
    public int getName() {
      return name_;
    }

    // repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;
    public static final int VALUE_PARAMETER_FIELD_NUMBER = 7;
    private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> valueParameter_;
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> getValueParameterList() {
      return valueParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder> 
        getValueParameterOrBuilderList() {
      return valueParameter_;
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    public int getValueParameterCount() {
      return valueParameter_.size();
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter getValueParameter(int index) {
      return valueParameter_.get(index);
    }
    /**
     * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
     *
     * <pre>
     * Value parameters for functions and constructors, or setter value parameter for properties
     * </pre>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder getValueParameterOrBuilder(
        int index) {
      return valueParameter_.get(index);
    }

    // required .org.jetbrains.kotlin.serialization.Type return_type = 8;
    public static final int RETURN_TYPE_FIELD_NUMBER = 8;
    private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type returnType_;
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    public boolean hasReturnType() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReturnType() {
      return returnType_;
    }
    /**
     * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
     */
    public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReturnTypeOrBuilder() {
      return returnType_;
    }

    private void initFields() {
      flags_ = 0;
      getterFlags_ = 0;
      setterFlags_ = 0;
      typeParameter_ = java.util.Collections.emptyList();
      receiverType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      name_ = 0;
      valueParameter_ = java.util.Collections.emptyList();
      returnType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReturnType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getTypeParameterCount(); i++) {
        if (!getTypeParameter(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReceiverType()) {
        if (!getReceiverType().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getValueParameterCount(); i++) {
        if (!getValueParameter(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getReturnType().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!extensionsAreInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      com.google.protobuf.GeneratedMessage
        .ExtendableMessage<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable>.ExtensionWriter extensionWriter =
          newExtensionWriter();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, flags_);
      }
      for (int i = 0; i < typeParameter_.size(); i++) {
        output.writeMessage(4, typeParameter_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, receiverType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, name_);
      }
      for (int i = 0; i < valueParameter_.size(); i++) {
        output.writeMessage(7, valueParameter_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(8, returnType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(9, getterFlags_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(10, setterFlags_);
      }
      extensionWriter.writeUntil(200, output);
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, flags_);
      }
      for (int i = 0; i < typeParameter_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, typeParameter_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, receiverType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, name_);
      }
      for (int i = 0; i < valueParameter_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, valueParameter_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, returnType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, getterFlags_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, setterFlags_);
      }
      size += extensionsSerializedSize();
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.Callable}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.ExtendableBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable, Builder> implements org.jetbrains.kotlin.serialization.DebugProtoBuf.CallableOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.Builder.class);
      }

      // Construct using org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTypeParameterFieldBuilder();
          getReceiverTypeFieldBuilder();
          getValueParameterFieldBuilder();
          getReturnTypeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        flags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        getterFlags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        setterFlags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (typeParameterBuilder_ == null) {
          typeParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          typeParameterBuilder_.clear();
        }
        if (receiverTypeBuilder_ == null) {
          receiverType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        } else {
          receiverTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        name_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (valueParameterBuilder_ == null) {
          valueParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          valueParameterBuilder_.clear();
        }
        if (returnTypeBuilder_ == null) {
          returnType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
        } else {
          returnTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable build() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable buildPartial() {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable result = new org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.flags_ = flags_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.getterFlags_ = getterFlags_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.setterFlags_ = setterFlags_;
        if (typeParameterBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            typeParameter_ = java.util.Collections.unmodifiableList(typeParameter_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.typeParameter_ = typeParameter_;
        } else {
          result.typeParameter_ = typeParameterBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (receiverTypeBuilder_ == null) {
          result.receiverType_ = receiverType_;
        } else {
          result.receiverType_ = receiverTypeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.name_ = name_;
        if (valueParameterBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            valueParameter_ = java.util.Collections.unmodifiableList(valueParameter_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.valueParameter_ = valueParameter_;
        } else {
          result.valueParameter_ = valueParameterBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000020;
        }
        if (returnTypeBuilder_ == null) {
          result.returnType_ = returnType_;
        } else {
          result.returnType_ = returnTypeBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable) {
          return mergeFrom((org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable other) {
        if (other == org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.getDefaultInstance()) return this;
        if (other.hasFlags()) {
          setFlags(other.getFlags());
        }
        if (other.hasGetterFlags()) {
          setGetterFlags(other.getGetterFlags());
        }
        if (other.hasSetterFlags()) {
          setSetterFlags(other.getSetterFlags());
        }
        if (typeParameterBuilder_ == null) {
          if (!other.typeParameter_.isEmpty()) {
            if (typeParameter_.isEmpty()) {
              typeParameter_ = other.typeParameter_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureTypeParameterIsMutable();
              typeParameter_.addAll(other.typeParameter_);
            }
            onChanged();
          }
        } else {
          if (!other.typeParameter_.isEmpty()) {
            if (typeParameterBuilder_.isEmpty()) {
              typeParameterBuilder_.dispose();
              typeParameterBuilder_ = null;
              typeParameter_ = other.typeParameter_;
              bitField0_ = (bitField0_ & ~0x00000008);
              typeParameterBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTypeParameterFieldBuilder() : null;
            } else {
              typeParameterBuilder_.addAllMessages(other.typeParameter_);
            }
          }
        }
        if (other.hasReceiverType()) {
          mergeReceiverType(other.getReceiverType());
        }
        if (other.hasName()) {
          setName(other.getName());
        }
        if (valueParameterBuilder_ == null) {
          if (!other.valueParameter_.isEmpty()) {
            if (valueParameter_.isEmpty()) {
              valueParameter_ = other.valueParameter_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureValueParameterIsMutable();
              valueParameter_.addAll(other.valueParameter_);
            }
            onChanged();
          }
        } else {
          if (!other.valueParameter_.isEmpty()) {
            if (valueParameterBuilder_.isEmpty()) {
              valueParameterBuilder_.dispose();
              valueParameterBuilder_ = null;
              valueParameter_ = other.valueParameter_;
              bitField0_ = (bitField0_ & ~0x00000040);
              valueParameterBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getValueParameterFieldBuilder() : null;
            } else {
              valueParameterBuilder_.addAllMessages(other.valueParameter_);
            }
          }
        }
        if (other.hasReturnType()) {
          mergeReturnType(other.getReturnType());
        }
        this.mergeExtensionFields(other);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasName()) {
          
          return false;
        }
        if (!hasReturnType()) {
          
          return false;
        }
        for (int i = 0; i < getTypeParameterCount(); i++) {
          if (!getTypeParameter(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasReceiverType()) {
          if (!getReceiverType().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getValueParameterCount(); i++) {
          if (!getValueParameter(i).isInitialized()) {
            
            return false;
          }
        }
        if (!getReturnType().isInitialized()) {
          
          return false;
        }
        if (!extensionsAreInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 flags = 1;
      private int flags_ ;
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotations
       *CallableKind
       *MemberKind
       *hasGetter
       *hasSetter
       *hasConstant
       * </pre>
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotations
       *CallableKind
       *MemberKind
       *hasGetter
       *hasSetter
       *hasConstant
       * </pre>
       */
      public int getFlags() {
        return flags_;
      }
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotations
       *CallableKind
       *MemberKind
       *hasGetter
       *hasSetter
       *hasConstant
       * </pre>
       */
      public Builder setFlags(int value) {
        bitField0_ |= 0x00000001;
        flags_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 flags = 1;</code>
       *
       * <pre>
       *
       *Visibility
       *Modality
       *has_annotations
       *CallableKind
       *MemberKind
       *hasGetter
       *hasSetter
       *hasConstant
       * </pre>
       */
      public Builder clearFlags() {
        bitField0_ = (bitField0_ & ~0x00000001);
        flags_ = 0;
        onChanged();
        return this;
      }

      // optional int32 getter_flags = 9;
      private int getterFlags_ ;
      /**
       * <code>optional int32 getter_flags = 9;</code>
       *
       * <pre>
       *
       *isNotDefault
       *Visibility
       *Modality
       *has_annotations
       * </pre>
       */
      public boolean hasGetterFlags() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int32 getter_flags = 9;</code>
       *
       * <pre>
       *
       *isNotDefault
       *Visibility
       *Modality
       *has_annotations
       * </pre>
       */
      public int getGetterFlags() {
        return getterFlags_;
      }
      /**
       * <code>optional int32 getter_flags = 9;</code>
       *
       * <pre>
       *
       *isNotDefault
       *Visibility
       *Modality
       *has_annotations
       * </pre>
       */
      public Builder setGetterFlags(int value) {
        bitField0_ |= 0x00000002;
        getterFlags_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 getter_flags = 9;</code>
       *
       * <pre>
       *
       *isNotDefault
       *Visibility
       *Modality
       *has_annotations
       * </pre>
       */
      public Builder clearGetterFlags() {
        bitField0_ = (bitField0_ & ~0x00000002);
        getterFlags_ = 0;
        onChanged();
        return this;
      }

      // optional int32 setter_flags = 10;
      private int setterFlags_ ;
      /**
       * <code>optional int32 setter_flags = 10;</code>
       */
      public boolean hasSetterFlags() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int32 setter_flags = 10;</code>
       */
      public int getSetterFlags() {
        return setterFlags_;
      }
      /**
       * <code>optional int32 setter_flags = 10;</code>
       */
      public Builder setSetterFlags(int value) {
        bitField0_ |= 0x00000004;
        setterFlags_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 setter_flags = 10;</code>
       */
      public Builder clearSetterFlags() {
        bitField0_ = (bitField0_ & ~0x00000004);
        setterFlags_ = 0;
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> typeParameter_ =
        java.util.Collections.emptyList();
      private void ensureTypeParameterIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          typeParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter>(typeParameter_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> typeParameterBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> getTypeParameterList() {
        if (typeParameterBuilder_ == null) {
          return java.util.Collections.unmodifiableList(typeParameter_);
        } else {
          return typeParameterBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public int getTypeParameterCount() {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.size();
        } else {
          return typeParameterBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter getTypeParameter(int index) {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.get(index);
        } else {
          return typeParameterBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder setTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.set(index, value);
          onChanged();
        } else {
          typeParameterBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder setTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.set(index, builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder addTypeParameter(org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.add(value);
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder addTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter value) {
        if (typeParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTypeParameterIsMutable();
          typeParameter_.add(index, value);
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder addTypeParameter(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.add(builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder addTypeParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder builderForValue) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.add(index, builderForValue.build());
          onChanged();
        } else {
          typeParameterBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder addAllTypeParameter(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter> values) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          super.addAll(values, typeParameter_);
          onChanged();
        } else {
          typeParameterBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder clearTypeParameter() {
        if (typeParameterBuilder_ == null) {
          typeParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          typeParameterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public Builder removeTypeParameter(int index) {
        if (typeParameterBuilder_ == null) {
          ensureTypeParameterIsMutable();
          typeParameter_.remove(index);
          onChanged();
        } else {
          typeParameterBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder getTypeParameterBuilder(
          int index) {
        return getTypeParameterFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder getTypeParameterOrBuilder(
          int index) {
        if (typeParameterBuilder_ == null) {
          return typeParameter_.get(index);  } else {
          return typeParameterBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
           getTypeParameterOrBuilderList() {
        if (typeParameterBuilder_ != null) {
          return typeParameterBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(typeParameter_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder addTypeParameterBuilder() {
        return getTypeParameterFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder addTypeParameterBuilder(
          int index) {
        return getTypeParameterFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.TypeParameter type_parameter = 4;</code>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder> 
           getTypeParameterBuilderList() {
        return getTypeParameterFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder> 
          getTypeParameterFieldBuilder() {
        if (typeParameterBuilder_ == null) {
          typeParameterBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeParameterOrBuilder>(
                  typeParameter_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          typeParameter_ = null;
        }
        return typeParameterBuilder_;
      }

      // optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type receiverType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> receiverTypeBuilder_;
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public boolean hasReceiverType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReceiverType() {
        if (receiverTypeBuilder_ == null) {
          return receiverType_;
        } else {
          return receiverTypeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public Builder setReceiverType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (receiverTypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          receiverType_ = value;
          onChanged();
        } else {
          receiverTypeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public Builder setReceiverType(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (receiverTypeBuilder_ == null) {
          receiverType_ = builderForValue.build();
          onChanged();
        } else {
          receiverTypeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public Builder mergeReceiverType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (receiverTypeBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              receiverType_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
            receiverType_ =
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(receiverType_).mergeFrom(value).buildPartial();
          } else {
            receiverType_ = value;
          }
          onChanged();
        } else {
          receiverTypeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public Builder clearReceiverType() {
        if (receiverTypeBuilder_ == null) {
          receiverType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          onChanged();
        } else {
          receiverTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getReceiverTypeBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getReceiverTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReceiverTypeOrBuilder() {
        if (receiverTypeBuilder_ != null) {
          return receiverTypeBuilder_.getMessageOrBuilder();
        } else {
          return receiverType_;
        }
      }
      /**
       * <code>optional .org.jetbrains.kotlin.serialization.Type receiver_type = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
          getReceiverTypeFieldBuilder() {
        if (receiverTypeBuilder_ == null) {
          receiverTypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                  receiverType_,
                  getParentForChildren(),
                  isClean());
          receiverType_ = null;
        }
        return receiverTypeBuilder_;
      }

      // required int32 name = 6;
      private int name_ ;
      /**
       * <code>required int32 name = 6;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required int32 name = 6;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public int getName() {
        return name_;
      }
      /**
       * <code>required int32 name = 6;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public Builder setName(int value) {
        bitField0_ |= 0x00000020;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 name = 6;</code>
       *
       * <pre>
       * Id in the StringTable
       * </pre>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        name_ = 0;
        onChanged();
        return this;
      }

      // repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;
      private java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> valueParameter_ =
        java.util.Collections.emptyList();
      private void ensureValueParameterIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          valueParameter_ = new java.util.ArrayList<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter>(valueParameter_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder> valueParameterBuilder_;

      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> getValueParameterList() {
        if (valueParameterBuilder_ == null) {
          return java.util.Collections.unmodifiableList(valueParameter_);
        } else {
          return valueParameterBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public int getValueParameterCount() {
        if (valueParameterBuilder_ == null) {
          return valueParameter_.size();
        } else {
          return valueParameterBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter getValueParameter(int index) {
        if (valueParameterBuilder_ == null) {
          return valueParameter_.get(index);
        } else {
          return valueParameterBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder setValueParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter value) {
        if (valueParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValueParameterIsMutable();
          valueParameter_.set(index, value);
          onChanged();
        } else {
          valueParameterBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder setValueParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder builderForValue) {
        if (valueParameterBuilder_ == null) {
          ensureValueParameterIsMutable();
          valueParameter_.set(index, builderForValue.build());
          onChanged();
        } else {
          valueParameterBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder addValueParameter(org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter value) {
        if (valueParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValueParameterIsMutable();
          valueParameter_.add(value);
          onChanged();
        } else {
          valueParameterBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder addValueParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter value) {
        if (valueParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValueParameterIsMutable();
          valueParameter_.add(index, value);
          onChanged();
        } else {
          valueParameterBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder addValueParameter(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder builderForValue) {
        if (valueParameterBuilder_ == null) {
          ensureValueParameterIsMutable();
          valueParameter_.add(builderForValue.build());
          onChanged();
        } else {
          valueParameterBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder addValueParameter(
          int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder builderForValue) {
        if (valueParameterBuilder_ == null) {
          ensureValueParameterIsMutable();
          valueParameter_.add(index, builderForValue.build());
          onChanged();
        } else {
          valueParameterBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder addAllValueParameter(
          java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter> values) {
        if (valueParameterBuilder_ == null) {
          ensureValueParameterIsMutable();
          super.addAll(values, valueParameter_);
          onChanged();
        } else {
          valueParameterBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder clearValueParameter() {
        if (valueParameterBuilder_ == null) {
          valueParameter_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          valueParameterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public Builder removeValueParameter(int index) {
        if (valueParameterBuilder_ == null) {
          ensureValueParameterIsMutable();
          valueParameter_.remove(index);
          onChanged();
        } else {
          valueParameterBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder getValueParameterBuilder(
          int index) {
        return getValueParameterFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder getValueParameterOrBuilder(
          int index) {
        if (valueParameterBuilder_ == null) {
          return valueParameter_.get(index);  } else {
          return valueParameterBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public java.util.List<? extends org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder> 
           getValueParameterOrBuilderList() {
        if (valueParameterBuilder_ != null) {
          return valueParameterBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(valueParameter_);
        }
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder addValueParameterBuilder() {
        return getValueParameterFieldBuilder().addBuilder(
            org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder addValueParameterBuilder(
          int index) {
        return getValueParameterFieldBuilder().addBuilder(
            index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jetbrains.kotlin.serialization.Callable.ValueParameter value_parameter = 7;</code>
       *
       * <pre>
       * Value parameters for functions and constructors, or setter value parameter for properties
       * </pre>
       */
      public java.util.List<org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder> 
           getValueParameterBuilderList() {
        return getValueParameterFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder> 
          getValueParameterFieldBuilder() {
        if (valueParameterBuilder_ == null) {
          valueParameterBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameter.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable.ValueParameterOrBuilder>(
                  valueParameter_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          valueParameter_ = null;
        }
        return valueParameterBuilder_;
      }

      // required .org.jetbrains.kotlin.serialization.Type return_type = 8;
      private org.jetbrains.kotlin.serialization.DebugProtoBuf.Type returnType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> returnTypeBuilder_;
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public boolean hasReturnType() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type getReturnType() {
        if (returnTypeBuilder_ == null) {
          return returnType_;
        } else {
          return returnTypeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public Builder setReturnType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (returnTypeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          returnType_ = value;
          onChanged();
        } else {
          returnTypeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public Builder setReturnType(
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder builderForValue) {
        if (returnTypeBuilder_ == null) {
          returnType_ = builderForValue.build();
          onChanged();
        } else {
          returnTypeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public Builder mergeReturnType(org.jetbrains.kotlin.serialization.DebugProtoBuf.Type value) {
        if (returnTypeBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              returnType_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance()) {
            returnType_ =
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.newBuilder(returnType_).mergeFrom(value).buildPartial();
          } else {
            returnType_ = value;
          }
          onChanged();
        } else {
          returnTypeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public Builder clearReturnType() {
        if (returnTypeBuilder_ == null) {
          returnType_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.getDefaultInstance();
          onChanged();
        } else {
          returnTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder getReturnTypeBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getReturnTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      public org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder getReturnTypeOrBuilder() {
        if (returnTypeBuilder_ != null) {
          return returnTypeBuilder_.getMessageOrBuilder();
        } else {
          return returnType_;
        }
      }
      /**
       * <code>required .org.jetbrains.kotlin.serialization.Type return_type = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder> 
          getReturnTypeFieldBuilder() {
        if (returnTypeBuilder_ == null) {
          returnTypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jetbrains.kotlin.serialization.DebugProtoBuf.Type, org.jetbrains.kotlin.serialization.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.TypeOrBuilder>(
                  returnType_,
                  getParentForChildren(),
                  isClean());
          returnType_ = null;
        }
        return returnTypeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.Callable)
    }

    static {
      defaultInstance = new Callable(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.Callable)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_StringTable_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Annotation_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Type_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Type_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Type_Argument_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_TypeParameter_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Class_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Class_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Package_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Package_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Callable_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n0core/deserialization/src/descriptors.d" +
      "ebug.proto\022\"org.jetbrains.kotlin.seriali" +
      "zation\"\035\n\013StringTable\022\016\n\006string\030\001 \003(\t\"\310\002" +
      "\n\022QualifiedNameTable\022\\\n\016qualified_name\030\001" +
      " \003(\0132D.org.jetbrains.kotlin.serializatio" +
      "n.QualifiedNameTable.QualifiedName\032\323\001\n\rQ" +
      "ualifiedName\022!\n\025parent_qualified_name\030\001 " +
      "\001(\005:\002-1\022\022\n\nshort_name\030\002 \002(\005\022`\n\004kind\030\003 \001(" +
      "\0162I.org.jetbrains.kotlin.serialization.Q" +
      "ualifiedNameTable.QualifiedName.Kind:\007PA",
      "CKAGE\")\n\004Kind\022\t\n\005CLASS\020\000\022\013\n\007PACKAGE\020\001\022\t\n" +
      "\005LOCAL\020\002\"\335\005\n\nAnnotation\022\n\n\002id\030\001 \002(\005\022I\n\010a" +
      "rgument\030\002 \003(\01327.org.jetbrains.kotlin.ser" +
      "ialization.Annotation.Argument\032\367\004\n\010Argum" +
      "ent\022\017\n\007name_id\030\001 \002(\005\022L\n\005value\030\002 \002(\0132=.or" +
      "g.jetbrains.kotlin.serialization.Annotat" +
      "ion.Argument.Value\032\213\004\n\005Value\022P\n\004type\030\001 \001" +
      "(\0162B.org.jetbrains.kotlin.serialization." +
      "Annotation.Argument.Value.Type\022\021\n\tint_va" +
      "lue\030\002 \001(\022\022\023\n\013float_value\030\003 \001(\002\022\024\n\014double",
      "_value\030\004 \001(\001\022\024\n\014string_value\030\005 \001(\005\022\020\n\010cl" +
      "ass_id\030\006 \001(\005\022\025\n\renum_value_id\030\007 \001(\005\022B\n\na" +
      "nnotation\030\010 \001(\0132..org.jetbrains.kotlin.s" +
      "erialization.Annotation\022T\n\rarray_element" +
      "\030\t \003(\0132=.org.jetbrains.kotlin.serializat" +
      "ion.Annotation.Argument.Value\"\230\001\n\004Type\022\010" +
      "\n\004BYTE\020\000\022\010\n\004CHAR\020\001\022\t\n\005SHORT\020\002\022\007\n\003INT\020\003\022\010" +
      "\n\004LONG\020\004\022\t\n\005FLOAT\020\005\022\n\n\006DOUBLE\020\006\022\013\n\007BOOLE" +
      "AN\020\007\022\n\n\006STRING\020\010\022\t\n\005CLASS\020\t\022\010\n\004ENUM\020\n\022\016\n" +
      "\nANNOTATION\020\013\022\t\n\005ARRAY\020\014\"\206\005\n\004Type\022I\n\013con",
      "structor\030\001 \002(\01324.org.jetbrains.kotlin.se" +
      "rialization.Type.Constructor\022C\n\010argument" +
      "\030\002 \003(\01321.org.jetbrains.kotlin.serializat" +
      "ion.Type.Argument\022\027\n\010nullable\030\003 \001(\010:\005fal" +
      "se\022%\n\035flexible_type_capabilities_id\030\004 \001(" +
      "\005\022F\n\024flexible_upper_bound\030\005 \001(\0132(.org.je" +
      "tbrains.kotlin.serialization.Type\032\220\001\n\013Co" +
      "nstructor\022N\n\004kind\030\001 \001(\01629.org.jetbrains." +
      "kotlin.serialization.Type.Constructor.Ki" +
      "nd:\005CLASS\022\n\n\002id\030\002 \002(\005\"%\n\004Kind\022\t\n\005CLASS\020\000",
      "\022\022\n\016TYPE_PARAMETER\020\001\032\313\001\n\010Argument\022U\n\npro" +
      "jection\030\001 \001(\0162<.org.jetbrains.kotlin.ser" +
      "ialization.Type.Argument.Projection:\003INV" +
      "\0226\n\004type\030\002 \001(\0132(.org.jetbrains.kotlin.se" +
      "rialization.Type\"0\n\nProjection\022\006\n\002IN\020\000\022\007" +
      "\n\003OUT\020\001\022\007\n\003INV\020\002\022\010\n\004STAR\020\003*\005\010d\020\310\001\"\371\001\n\rTy" +
      "peParameter\022\n\n\002id\030\001 \002(\005\022\014\n\004name\030\002 \002(\005\022\026\n" +
      "\007reified\030\003 \001(\010:\005false\022Q\n\010variance\030\004 \001(\0162" +
      ":.org.jetbrains.kotlin.serialization.Typ" +
      "eParameter.Variance:\003INV\022=\n\013upper_bound\030",
      "\005 \003(\0132(.org.jetbrains.kotlin.serializati" +
      "on.Type\"$\n\010Variance\022\006\n\002IN\020\000\022\007\n\003OUT\020\001\022\007\n\003" +
      "INV\020\002\"\271\005\n\005Class\022\020\n\005flags\030\001 \001(\005:\0010\022\017\n\007fq_" +
      "name\030\003 \002(\005\022\035\n\025companion_object_name\030\004 \001(" +
      "\005\022I\n\016type_parameter\030\005 \003(\01321.org.jetbrain" +
      "s.kotlin.serialization.TypeParameter\022;\n\t" +
      "supertype\030\006 \003(\0132(.org.jetbrains.kotlin.s" +
      "erialization.Type\022\035\n\021nested_class_name\030\007" +
      " \003(\005B\002\020\001\022<\n\006member\030\013 \003(\0132,.org.jetbrains" +
      ".kotlin.serialization.Callable\022\026\n\nenum_e",
      "ntry\030\014 \003(\005B\002\020\001\022Y\n\023primary_constructor\030\r " +
      "\001(\0132<.org.jetbrains.kotlin.serialization" +
      ".Class.PrimaryConstructor\022K\n\025secondary_c" +
      "onstructor\030\016 \003(\0132,.org.jetbrains.kotlin." +
      "serialization.Callable\032P\n\022PrimaryConstru" +
      "ctor\022:\n\004data\030\001 \001(\0132,.org.jetbrains.kotli" +
      "n.serialization.Callable\"p\n\004Kind\022\t\n\005CLAS" +
      "S\020\000\022\t\n\005TRAIT\020\001\022\016\n\nENUM_CLASS\020\002\022\016\n\nENUM_E" +
      "NTRY\020\003\022\024\n\020ANNOTATION_CLASS\020\004\022\n\n\006OBJECT\020\005" +
      "\022\020\n\014CLASS_OBJECT\020\006*\005\010d\020\310\001\"N\n\007Package\022<\n\006",
      "member\030\001 \003(\0132,.org.jetbrains.kotlin.seri" +
      "alization.Callable*\005\010d\020\310\001\"\300\005\n\010Callable\022\r" +
      "\n\005flags\030\001 \001(\005\022\024\n\014getter_flags\030\t \001(\005\022\024\n\014s" +
      "etter_flags\030\n \001(\005\022I\n\016type_parameter\030\004 \003(" +
      "\01321.org.jetbrains.kotlin.serialization.T" +
      "ypeParameter\022?\n\rreceiver_type\030\005 \001(\0132(.or" +
      "g.jetbrains.kotlin.serialization.Type\022\014\n" +
      "\004name\030\006 \002(\005\022T\n\017value_parameter\030\007 \003(\0132;.o" +
      "rg.jetbrains.kotlin.serialization.Callab" +
      "le.ValueParameter\022=\n\013return_type\030\010 \002(\0132(",
      ".org.jetbrains.kotlin.serialization.Type" +
      "\032\263\001\n\016ValueParameter\022\r\n\005flags\030\001 \001(\005\022\014\n\004na" +
      "me\030\002 \002(\005\0226\n\004type\030\003 \002(\0132(.org.jetbrains.k" +
      "otlin.serialization.Type\022E\n\023vararg_eleme" +
      "nt_type\030\004 \001(\0132(.org.jetbrains.kotlin.ser" +
      "ialization.Type*\005\010d\020\310\001\"Q\n\nMemberKind\022\017\n\013" +
      "DECLARATION\020\000\022\021\n\rFAKE_OVERRIDE\020\001\022\016\n\nDELE" +
      "GATION\020\002\022\017\n\013SYNTHESIZED\020\003\":\n\014CallableKin" +
      "d\022\007\n\003FUN\020\000\022\007\n\003VAL\020\001\022\007\n\003VAR\020\002\022\017\n\013CONSTRUC" +
      "TOR\020\003*\005\010d\020\310\001*9\n\010Modality\022\t\n\005FINAL\020\000\022\010\n\004O",
      "PEN\020\001\022\014\n\010ABSTRACT\020\002\022\n\n\006SEALED\020\003*b\n\nVisib" +
      "ility\022\014\n\010INTERNAL\020\000\022\013\n\007PRIVATE\020\001\022\r\n\tPROT" +
      "ECTED\020\002\022\n\n\006PUBLIC\020\003\022\023\n\017PRIVATE_TO_THIS\020\004" +
      "\022\t\n\005LOCAL\020\005B\022B\rDebugProtoBuf\210\001\000"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_StringTable_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_StringTable_descriptor,
              new java.lang.String[] { "String", });
          internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor,
              new java.lang.String[] { "QualifiedName", });
          internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_QualifiedNameTable_QualifiedName_descriptor,
              new java.lang.String[] { "ParentQualifiedName", "ShortName", "Kind", });
          internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_org_jetbrains_kotlin_serialization_Annotation_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor,
              new java.lang.String[] { "Id", "Argument", });
          internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Annotation_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor,
              new java.lang.String[] { "NameId", "Value", });
          internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Annotation_Argument_Value_descriptor,
              new java.lang.String[] { "Type", "IntValue", "FloatValue", "DoubleValue", "StringValue", "ClassId", "EnumValueId", "Annotation", "ArrayElement", });
          internal_static_org_jetbrains_kotlin_serialization_Type_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_org_jetbrains_kotlin_serialization_Type_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Type_descriptor,
              new java.lang.String[] { "Constructor", "Argument", "Nullable", "FlexibleTypeCapabilitiesId", "FlexibleUpperBound", });
          internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Type_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Type_Constructor_descriptor,
              new java.lang.String[] { "Kind", "Id", });
          internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Type_descriptor.getNestedTypes().get(1);
          internal_static_org_jetbrains_kotlin_serialization_Type_Argument_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Type_Argument_descriptor,
              new java.lang.String[] { "Projection", "Type", });
          internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_org_jetbrains_kotlin_serialization_TypeParameter_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_TypeParameter_descriptor,
              new java.lang.String[] { "Id", "Name", "Reified", "Variance", "UpperBound", });
          internal_static_org_jetbrains_kotlin_serialization_Class_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_org_jetbrains_kotlin_serialization_Class_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Class_descriptor,
              new java.lang.String[] { "Flags", "FqName", "CompanionObjectName", "TypeParameter", "Supertype", "NestedClassName", "Member", "EnumEntry", "PrimaryConstructor", "SecondaryConstructor", });
          internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Class_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Class_PrimaryConstructor_descriptor,
              new java.lang.String[] { "Data", });
          internal_static_org_jetbrains_kotlin_serialization_Package_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_org_jetbrains_kotlin_serialization_Package_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Package_descriptor,
              new java.lang.String[] { "Member", });
          internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_org_jetbrains_kotlin_serialization_Callable_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor,
              new java.lang.String[] { "Flags", "GetterFlags", "SetterFlags", "TypeParameter", "ReceiverType", "Name", "ValueParameter", "ReturnType", });
          internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor =
            internal_static_org_jetbrains_kotlin_serialization_Callable_descriptor.getNestedTypes().get(0);
          internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jetbrains_kotlin_serialization_Callable_ValueParameter_descriptor,
              new java.lang.String[] { "Flags", "Name", "Type", "VarargElementType", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
