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

package com.zfoo.protocol.packet;

public final class ProtobufObject {
  private ProtobufObject() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ObjectBOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ObjectB)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool flag = 1;</code>
     */
    boolean getFlag();
  }
  /**
   * Protobuf type {@code ObjectB}
   */
  public  static final class ObjectB extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ObjectB)
      ObjectBOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ObjectB.newBuilder() to construct.
    private ObjectB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ObjectB() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ObjectB();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ObjectB(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {

              flag_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectB_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectB_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ObjectB.class, com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder.class);
    }

    public static final int FLAG_FIELD_NUMBER = 1;
    private boolean flag_;
    /**
     * <code>bool flag = 1;</code>
     */
    public boolean getFlag() {
      return flag_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (flag_ != false) {
        output.writeBool(1, flag_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (flag_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, flag_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ObjectB)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ObjectB other = (com.zfoo.protocol.packet.ProtobufObject.ObjectB) obj;

      if (getFlag()
          != other.getFlag()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FLAG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFlag());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ObjectB prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ObjectB}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ObjectB)
        com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectB_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectB_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ObjectB.class, com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ObjectB.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        flag_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectB_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectB getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ObjectB.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectB build() {
        com.zfoo.protocol.packet.ProtobufObject.ObjectB result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectB buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ObjectB result = new com.zfoo.protocol.packet.ProtobufObject.ObjectB(this);
        result.flag_ = flag_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ObjectB) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ObjectB)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ObjectB other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ObjectB.getDefaultInstance()) return this;
        if (other.getFlag() != false) {
          setFlag(other.getFlag());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ObjectB parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ObjectB) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean flag_ ;
      /**
       * <code>bool flag = 1;</code>
       */
      public boolean getFlag() {
        return flag_;
      }
      /**
       * <code>bool flag = 1;</code>
       */
      public Builder setFlag(boolean value) {
        
        flag_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool flag = 1;</code>
       */
      public Builder clearFlag() {
        
        flag_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ObjectB)
    }

    // @@protoc_insertion_point(class_scope:ObjectB)
    private static final com.zfoo.protocol.packet.ProtobufObject.ObjectB DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ObjectB();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ObjectB getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ObjectB>
        PARSER = new com.google.protobuf.AbstractParser<ObjectB>() {
      @java.lang.Override
      public ObjectB parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ObjectB(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ObjectB> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ObjectB getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ObjectAOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ObjectA)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 a = 1;</code>
     */
    int getA();

    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */
    int getMCount();
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */
    boolean containsM(
        int key);
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.String>
    getM();
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.String>
    getMMap();
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    java.lang.String getMOrThrow(
        int key);

    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    boolean hasObjectB();
    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectB getObjectB();
    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder getObjectBOrBuilder();
  }
  /**
   * Protobuf type {@code ObjectA}
   */
  public  static final class ObjectA extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ObjectA)
      ObjectAOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ObjectA.newBuilder() to construct.
    private ObjectA(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ObjectA() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ObjectA();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ObjectA(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {

              a_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                m_ = com.google.protobuf.MapField.newMapField(
                    MDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
              m__ = input.readMessage(
                  MDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              m_.getMutableMap().put(
                  m__.getKey(), m__.getValue());
              break;
            }
            case 26: {
              com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder subBuilder = null;
              if (objectB_ != null) {
                subBuilder = objectB_.toBuilder();
              }
              objectB_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectB.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(objectB_);
                objectB_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetM();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private int a_;
    /**
     * <code>int32 a = 1;</code>
     */
    public int getA() {
      return a_;
    }

    public static final int M_FIELD_NUMBER = 2;
    private static final class MDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.String>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_MEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.String> m_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
    internalGetM() {
      if (m_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MDefaultEntryHolder.defaultEntry);
      }
      return m_;
    }

    public int getMCount() {
      return internalGetM().getMap().size();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    public boolean containsM(
        int key) {
      
      return internalGetM().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.String> getM() {
      return getMMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
      return internalGetM().getMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    public java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, string&gt; m = 2;</code>
     */

    public java.lang.String getMOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int OBJECTB_FIELD_NUMBER = 3;
    private com.zfoo.protocol.packet.ProtobufObject.ObjectB objectB_;
    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    public boolean hasObjectB() {
      return objectB_ != null;
    }
    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectB getObjectB() {
      return objectB_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectB.getDefaultInstance() : objectB_;
    }
    /**
     * <code>.ObjectB objectB = 3;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder getObjectBOrBuilder() {
      return getObjectB();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (a_ != 0) {
        output.writeInt32(1, a_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetM(),
          MDefaultEntryHolder.defaultEntry,
          2);
      if (objectB_ != null) {
        output.writeMessage(3, getObjectB());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (a_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, a_);
      }
      for (java.util.Map.Entry<java.lang.Integer, java.lang.String> entry
           : internalGetM().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
        m__ = MDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, m__);
      }
      if (objectB_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getObjectB());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ObjectA)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ObjectA other = (com.zfoo.protocol.packet.ProtobufObject.ObjectA) obj;

      if (getA()
          != other.getA()) return false;
      if (!internalGetM().equals(
          other.internalGetM())) return false;
      if (hasObjectB() != other.hasObjectB()) return false;
      if (hasObjectB()) {
        if (!getObjectB()
            .equals(other.getObjectB())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + A_FIELD_NUMBER;
      hash = (53 * hash) + getA();
      if (!internalGetM().getMap().isEmpty()) {
        hash = (37 * hash) + M_FIELD_NUMBER;
        hash = (53 * hash) + internalGetM().hashCode();
      }
      if (hasObjectB()) {
        hash = (37 * hash) + OBJECTB_FIELD_NUMBER;
        hash = (53 * hash) + getObjectB().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ObjectA prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ObjectA}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ObjectA)
        com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetM();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetMutableM();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ObjectA.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        a_ = 0;

        internalGetMutableM().clear();
        if (objectBBuilder_ == null) {
          objectB_ = null;
        } else {
          objectB_ = null;
          objectBBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ObjectA_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA build() {
        com.zfoo.protocol.packet.ProtobufObject.ObjectA result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ObjectA result = new com.zfoo.protocol.packet.ProtobufObject.ObjectA(this);
        int from_bitField0_ = bitField0_;
        result.a_ = a_;
        result.m_ = internalGetM();
        result.m_.makeImmutable();
        if (objectBBuilder_ == null) {
          result.objectB_ = objectB_;
        } else {
          result.objectB_ = objectBBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ObjectA) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ObjectA)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ObjectA other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance()) return this;
        if (other.getA() != 0) {
          setA(other.getA());
        }
        internalGetMutableM().mergeFrom(
            other.internalGetM());
        if (other.hasObjectB()) {
          mergeObjectB(other.getObjectB());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ObjectA parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ObjectA) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int a_ ;
      /**
       * <code>int32 a = 1;</code>
       */
      public int getA() {
        return a_;
      }
      /**
       * <code>int32 a = 1;</code>
       */
      public Builder setA(int value) {
        
        a_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 a = 1;</code>
       */
      public Builder clearA() {
        
        a_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.String> m_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetM() {
        if (m_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        return m_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetMutableM() {
        onChanged();;
        if (m_ == null) {
          m_ = com.google.protobuf.MapField.newMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        if (!m_.isMutable()) {
          m_ = m_.copy();
        }
        return m_;
      }

      public int getMCount() {
        return internalGetM().getMap().size();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public boolean containsM(
          int key) {
        
        return internalGetM().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String> getM() {
        return getMMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
        return internalGetM().getMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public java.lang.String getMOrDefault(
          int key,
          java.lang.String defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public java.lang.String getMOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearM() {
        internalGetMutableM().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public Builder removeM(
          int key) {
        
        internalGetMutableM().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String>
      getMutableM() {
        return internalGetMutableM().getMutableMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */
      public Builder putM(
          int key,
          java.lang.String value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableM().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 2;</code>
       */

      public Builder putAllM(
          java.util.Map<java.lang.Integer, java.lang.String> values) {
        internalGetMutableM().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ObjectB objectB_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectB, com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder> objectBBuilder_;
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public boolean hasObjectB() {
        return objectBBuilder_ != null || objectB_ != null;
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectB getObjectB() {
        if (objectBBuilder_ == null) {
          return objectB_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectB.getDefaultInstance() : objectB_;
        } else {
          return objectBBuilder_.getMessage();
        }
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public Builder setObjectB(com.zfoo.protocol.packet.ProtobufObject.ObjectB value) {
        if (objectBBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          objectB_ = value;
          onChanged();
        } else {
          objectBBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public Builder setObjectB(
          com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder builderForValue) {
        if (objectBBuilder_ == null) {
          objectB_ = builderForValue.build();
          onChanged();
        } else {
          objectBBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public Builder mergeObjectB(com.zfoo.protocol.packet.ProtobufObject.ObjectB value) {
        if (objectBBuilder_ == null) {
          if (objectB_ != null) {
            objectB_ =
              com.zfoo.protocol.packet.ProtobufObject.ObjectB.newBuilder(objectB_).mergeFrom(value).buildPartial();
          } else {
            objectB_ = value;
          }
          onChanged();
        } else {
          objectBBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public Builder clearObjectB() {
        if (objectBBuilder_ == null) {
          objectB_ = null;
          onChanged();
        } else {
          objectB_ = null;
          objectBBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder getObjectBBuilder() {
        
        onChanged();
        return getObjectBFieldBuilder().getBuilder();
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder getObjectBOrBuilder() {
        if (objectBBuilder_ != null) {
          return objectBBuilder_.getMessageOrBuilder();
        } else {
          return objectB_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ObjectB.getDefaultInstance() : objectB_;
        }
      }
      /**
       * <code>.ObjectB objectB = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectB, com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder> 
          getObjectBFieldBuilder() {
        if (objectBBuilder_ == null) {
          objectBBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectB, com.zfoo.protocol.packet.ProtobufObject.ObjectB.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectBOrBuilder>(
                  getObjectB(),
                  getParentForChildren(),
                  isClean());
          objectB_ = null;
        }
        return objectBBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ObjectA)
    }

    // @@protoc_insertion_point(class_scope:ObjectA)
    private static final com.zfoo.protocol.packet.ProtobufObject.ObjectA DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ObjectA();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ObjectA getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ObjectA>
        PARSER = new com.google.protobuf.AbstractParser<ObjectA>() {
      @java.lang.Override
      public ObjectA parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ObjectA(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ObjectA> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListIntegerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListInteger)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated int32 a = 1;</code>
     */
    java.util.List<java.lang.Integer> getAList();
    /**
     * <code>repeated int32 a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated int32 a = 1;</code>
     */
    int getA(int index);
  }
  /**
   * Protobuf type {@code ListInteger}
   */
  public  static final class ListInteger extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListInteger)
      ListIntegerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListInteger.newBuilder() to construct.
    private ListInteger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListInteger() {
      a_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListInteger();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListInteger(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.addInt(input.readInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                a_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                a_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListInteger_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListInteger_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.IntList a_;
    /**
     * <code>repeated int32 a = 1;</code>
     */
    public java.util.List<java.lang.Integer>
        getAList() {
      return a_;
    }
    /**
     * <code>repeated int32 a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated int32 a = 1;</code>
     */
    public int getA(int index) {
      return a_.getInt(index);
    }
    private int aMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getAList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(aMemoizedSerializedSize);
      }
      for (int i = 0; i < a_.size(); i++) {
        output.writeInt32NoTag(a_.getInt(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < a_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(a_.getInt(i));
        }
        size += dataSize;
        if (!getAList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        aMemoizedSerializedSize = dataSize;
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListInteger)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListInteger other = (com.zfoo.protocol.packet.ProtobufObject.ListInteger) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListInteger prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListInteger}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListInteger)
        com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListInteger_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListInteger_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListInteger.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        a_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListInteger_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger build() {
        com.zfoo.protocol.packet.ProtobufObject.ListInteger result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListInteger result = new com.zfoo.protocol.packet.ProtobufObject.ListInteger(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          a_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.a_ = a_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListInteger) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListInteger)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListInteger other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance()) return this;
        if (!other.a_.isEmpty()) {
          if (a_.isEmpty()) {
            a_ = other.a_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureAIsMutable();
            a_.addAll(other.a_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListInteger parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListInteger) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.IntList a_ = emptyIntList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = mutableCopy(a_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public java.util.List<java.lang.Integer>
          getAList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(a_) : a_;
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public int getACount() {
        return a_.size();
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public int getA(int index) {
        return a_.getInt(index);
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public Builder setA(
          int index, int value) {
        ensureAIsMutable();
        a_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public Builder addA(int value) {
        ensureAIsMutable();
        a_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureAIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, a_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 a = 1;</code>
       */
      public Builder clearA() {
        a_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListInteger)
    }

    // @@protoc_insertion_point(class_scope:ListInteger)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListInteger DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListInteger();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListInteger getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListInteger>
        PARSER = new com.google.protobuf.AbstractParser<ListInteger>() {
      @java.lang.Override
      public ListInteger parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListInteger(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListInteger> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListInteger getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListListIntegerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListListInteger)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger> 
        getAList();
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListInteger getA(int index);
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> 
        getAOrBuilderList();
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getAOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListListInteger}
   */
  public  static final class ListListInteger extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListListInteger)
      ListListIntegerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListListInteger.newBuilder() to construct.
    private ListListInteger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListListInteger() {
      a_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListListInteger();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListListInteger(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListInteger>();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListInteger.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_ = java.util.Collections.unmodifiableList(a_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListInteger_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListInteger_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger> a_;
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger> getAList() {
      return a_;
    }
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> 
        getAOrBuilderList() {
      return a_;
    }
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListInteger getA(int index) {
      return a_.get(index);
    }
    /**
     * <code>repeated .ListInteger a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getAOrBuilder(
        int index) {
      return a_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < a_.size(); i++) {
        output.writeMessage(1, a_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListListInteger)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListListInteger other = (com.zfoo.protocol.packet.ProtobufObject.ListListInteger) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListListInteger prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListListInteger}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListListInteger)
        com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListInteger_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListInteger_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListListInteger.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          aBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListInteger_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger build() {
        com.zfoo.protocol.packet.ProtobufObject.ListListInteger result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListListInteger result = new com.zfoo.protocol.packet.ProtobufObject.ListListInteger(this);
        int from_bitField0_ = bitField0_;
        if (aBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            a_ = java.util.Collections.unmodifiableList(a_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.a_ = a_;
        } else {
          result.a_ = aBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListListInteger) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListListInteger)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListListInteger other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance()) return this;
        if (aBuilder_ == null) {
          if (!other.a_.isEmpty()) {
            if (a_.isEmpty()) {
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAIsMutable();
              a_.addAll(other.a_);
            }
            onChanged();
          }
        } else {
          if (!other.a_.isEmpty()) {
            if (aBuilder_.isEmpty()) {
              aBuilder_.dispose();
              aBuilder_ = null;
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
              aBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAFieldBuilder() : null;
            } else {
              aBuilder_.addAllMessages(other.a_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListListInteger parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListListInteger) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger> a_ =
        java.util.Collections.emptyList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListInteger>(a_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> aBuilder_;

      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger> getAList() {
        if (aBuilder_ == null) {
          return java.util.Collections.unmodifiableList(a_);
        } else {
          return aBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public int getACount() {
        if (aBuilder_ == null) {
          return a_.size();
        } else {
          return aBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger getA(int index) {
        if (aBuilder_ == null) {
          return a_.get(index);
        } else {
          return aBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.set(index, value);
          onChanged();
        } else {
          aBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.set(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder addA(com.zfoo.protocol.packet.ProtobufObject.ListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(value);
          onChanged();
        } else {
          aBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(index, value);
          onChanged();
        } else {
          aBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder addA(
          com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListInteger> values) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, a_);
          onChanged();
        } else {
          aBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder clearA() {
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          aBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public Builder removeA(int index) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.remove(index);
          onChanged();
        } else {
          aBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder getABuilder(
          int index) {
        return getAFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getAOrBuilder(
          int index) {
        if (aBuilder_ == null) {
          return a_.get(index);  } else {
          return aBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> 
           getAOrBuilderList() {
        if (aBuilder_ != null) {
          return aBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(a_);
        }
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder addABuilder() {
        return getAFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance());
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder addABuilder(
          int index) {
        return getAFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance());
      }
      /**
       * <code>repeated .ListInteger a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder> 
           getABuilderList() {
        return getAFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> 
          getAFieldBuilder() {
        if (aBuilder_ == null) {
          aBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder>(
                  a_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          a_ = null;
        }
        return aBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListListInteger)
    }

    // @@protoc_insertion_point(class_scope:ListListInteger)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListListInteger DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListListInteger();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListInteger getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListListInteger>
        PARSER = new com.google.protobuf.AbstractParser<ListListInteger>() {
      @java.lang.Override
      public ListListInteger parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListListInteger(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListListInteger> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListListListIntegerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListListListInteger)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> 
        getAList();
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListInteger getA(int index);
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getAOrBuilderList();
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getAOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListListListInteger}
   */
  public  static final class ListListListInteger extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListListListInteger)
      ListListListIntegerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListListListInteger.newBuilder() to construct.
    private ListListListInteger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListListListInteger() {
      a_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListListListInteger();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListListListInteger(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListListInteger.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_ = java.util.Collections.unmodifiableList(a_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListListInteger_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListListInteger_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> a_;
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getAList() {
      return a_;
    }
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getAOrBuilderList() {
      return a_;
    }
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getA(int index) {
      return a_.get(index);
    }
    /**
     * <code>repeated .ListListInteger a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getAOrBuilder(
        int index) {
      return a_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < a_.size(); i++) {
        output.writeMessage(1, a_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListListListInteger)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListListListInteger other = (com.zfoo.protocol.packet.ProtobufObject.ListListListInteger) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListListListInteger prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListListListInteger}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListListListInteger)
        com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListListInteger_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListListInteger_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.class, com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          aBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListListInteger_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger build() {
        com.zfoo.protocol.packet.ProtobufObject.ListListListInteger result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListListListInteger result = new com.zfoo.protocol.packet.ProtobufObject.ListListListInteger(this);
        int from_bitField0_ = bitField0_;
        if (aBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            a_ = java.util.Collections.unmodifiableList(a_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.a_ = a_;
        } else {
          result.a_ = aBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListListListInteger) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListListListInteger)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListListListInteger other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.getDefaultInstance()) return this;
        if (aBuilder_ == null) {
          if (!other.a_.isEmpty()) {
            if (a_.isEmpty()) {
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAIsMutable();
              a_.addAll(other.a_);
            }
            onChanged();
          }
        } else {
          if (!other.a_.isEmpty()) {
            if (aBuilder_.isEmpty()) {
              aBuilder_.dispose();
              aBuilder_ = null;
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
              aBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAFieldBuilder() : null;
            } else {
              aBuilder_.addAllMessages(other.a_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListListListInteger parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListListListInteger) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> a_ =
        java.util.Collections.emptyList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>(a_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> aBuilder_;

      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getAList() {
        if (aBuilder_ == null) {
          return java.util.Collections.unmodifiableList(a_);
        } else {
          return aBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public int getACount() {
        if (aBuilder_ == null) {
          return a_.size();
        } else {
          return aBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getA(int index) {
        if (aBuilder_ == null) {
          return a_.get(index);
        } else {
          return aBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.set(index, value);
          onChanged();
        } else {
          aBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.set(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder addA(com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(value);
          onChanged();
        } else {
          aBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(index, value);
          onChanged();
        } else {
          aBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder addA(
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListListInteger> values) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, a_);
          onChanged();
        } else {
          aBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder clearA() {
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          aBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public Builder removeA(int index) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.remove(index);
          onChanged();
        } else {
          aBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder getABuilder(
          int index) {
        return getAFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getAOrBuilder(
          int index) {
        if (aBuilder_ == null) {
          return a_.get(index);  } else {
          return aBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
           getAOrBuilderList() {
        if (aBuilder_ != null) {
          return aBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(a_);
        }
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addABuilder() {
        return getAFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addABuilder(
          int index) {
        return getAFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <code>repeated .ListListInteger a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder> 
           getABuilderList() {
        return getAFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
          getAFieldBuilder() {
        if (aBuilder_ == null) {
          aBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder>(
                  a_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          a_ = null;
        }
        return aBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListListListInteger)
    }

    // @@protoc_insertion_point(class_scope:ListListListInteger)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListListListInteger DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListListListInteger();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListListListInteger>
        PARSER = new com.google.protobuf.AbstractParser<ListListListInteger>() {
      @java.lang.Override
      public ListListListInteger parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListListListInteger(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListListListInteger> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListObjectAOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListObjectA)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> 
        getAList();
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getA(int index);
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getAOrBuilderList();
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getAOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListObjectA}
   */
  public  static final class ListObjectA extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListObjectA)
      ListObjectAOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListObjectA.newBuilder() to construct.
    private ListObjectA(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListObjectA() {
      a_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListObjectA();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListObjectA(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_ = java.util.Collections.unmodifiableList(a_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListObjectA_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListObjectA_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> a_;
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getAList() {
      return a_;
    }
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getAOrBuilderList() {
      return a_;
    }
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getA(int index) {
      return a_.get(index);
    }
    /**
     * <code>repeated .ObjectA a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getAOrBuilder(
        int index) {
      return a_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < a_.size(); i++) {
        output.writeMessage(1, a_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListObjectA)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListObjectA other = (com.zfoo.protocol.packet.ProtobufObject.ListObjectA) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListObjectA prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListObjectA}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListObjectA)
        com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListObjectA_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListObjectA_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListObjectA.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          aBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListObjectA_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA build() {
        com.zfoo.protocol.packet.ProtobufObject.ListObjectA result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListObjectA result = new com.zfoo.protocol.packet.ProtobufObject.ListObjectA(this);
        int from_bitField0_ = bitField0_;
        if (aBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            a_ = java.util.Collections.unmodifiableList(a_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.a_ = a_;
        } else {
          result.a_ = aBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListObjectA) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListObjectA)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListObjectA other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance()) return this;
        if (aBuilder_ == null) {
          if (!other.a_.isEmpty()) {
            if (a_.isEmpty()) {
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAIsMutable();
              a_.addAll(other.a_);
            }
            onChanged();
          }
        } else {
          if (!other.a_.isEmpty()) {
            if (aBuilder_.isEmpty()) {
              aBuilder_.dispose();
              aBuilder_ = null;
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
              aBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAFieldBuilder() : null;
            } else {
              aBuilder_.addAllMessages(other.a_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListObjectA parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListObjectA) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> a_ =
        java.util.Collections.emptyList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>(a_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> aBuilder_;

      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getAList() {
        if (aBuilder_ == null) {
          return java.util.Collections.unmodifiableList(a_);
        } else {
          return aBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public int getACount() {
        if (aBuilder_ == null) {
          return a_.size();
        } else {
          return aBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getA(int index) {
        if (aBuilder_ == null) {
          return a_.get(index);
        } else {
          return aBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.set(index, value);
          onChanged();
        } else {
          aBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.set(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder addA(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(value);
          onChanged();
        } else {
          aBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(index, value);
          onChanged();
        } else {
          aBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder addA(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectA> values) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, a_);
          onChanged();
        } else {
          aBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder clearA() {
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          aBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public Builder removeA(int index) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.remove(index);
          onChanged();
        } else {
          aBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getABuilder(
          int index) {
        return getAFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getAOrBuilder(
          int index) {
        if (aBuilder_ == null) {
          return a_.get(index);  } else {
          return aBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
           getAOrBuilderList() {
        if (aBuilder_ != null) {
          return aBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(a_);
        }
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addABuilder() {
        return getAFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addABuilder(
          int index) {
        return getAFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder> 
           getABuilderList() {
        return getAFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getAFieldBuilder() {
        if (aBuilder_ == null) {
          aBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  a_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          a_ = null;
        }
        return aBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListObjectA)
    }

    // @@protoc_insertion_point(class_scope:ListObjectA)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListObjectA DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListObjectA();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListObjectA getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListObjectA>
        PARSER = new com.google.protobuf.AbstractParser<ListObjectA>() {
      @java.lang.Override
      public ListObjectA parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListObjectA(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListObjectA> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListListObjectAOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListListObjectA)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> 
        getAList();
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectA getA(int index);
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getAOrBuilderList();
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getAOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListListObjectA}
   */
  public  static final class ListListObjectA extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListListObjectA)
      ListListObjectAOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListListObjectA.newBuilder() to construct.
    private ListListObjectA(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListListObjectA() {
      a_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListListObjectA();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListListObjectA(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListObjectA.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_ = java.util.Collections.unmodifiableList(a_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListObjectA_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListObjectA_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> a_;
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getAList() {
      return a_;
    }
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getAOrBuilderList() {
      return a_;
    }
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getA(int index) {
      return a_.get(index);
    }
    /**
     * <code>repeated .ListObjectA a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getAOrBuilder(
        int index) {
      return a_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < a_.size(); i++) {
        output.writeMessage(1, a_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListListObjectA)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListListObjectA other = (com.zfoo.protocol.packet.ProtobufObject.ListListObjectA) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListListObjectA prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListListObjectA}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListListObjectA)
        com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListObjectA_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListObjectA_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          aBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListListObjectA_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA build() {
        com.zfoo.protocol.packet.ProtobufObject.ListListObjectA result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListListObjectA result = new com.zfoo.protocol.packet.ProtobufObject.ListListObjectA(this);
        int from_bitField0_ = bitField0_;
        if (aBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            a_ = java.util.Collections.unmodifiableList(a_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.a_ = a_;
        } else {
          result.a_ = aBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListListObjectA) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListListObjectA)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListListObjectA other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.getDefaultInstance()) return this;
        if (aBuilder_ == null) {
          if (!other.a_.isEmpty()) {
            if (a_.isEmpty()) {
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAIsMutable();
              a_.addAll(other.a_);
            }
            onChanged();
          }
        } else {
          if (!other.a_.isEmpty()) {
            if (aBuilder_.isEmpty()) {
              aBuilder_.dispose();
              aBuilder_ = null;
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
              aBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAFieldBuilder() : null;
            } else {
              aBuilder_.addAllMessages(other.a_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListListObjectA parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListListObjectA) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> a_ =
        java.util.Collections.emptyList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>(a_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> aBuilder_;

      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getAList() {
        if (aBuilder_ == null) {
          return java.util.Collections.unmodifiableList(a_);
        } else {
          return aBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public int getACount() {
        if (aBuilder_ == null) {
          return a_.size();
        } else {
          return aBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getA(int index) {
        if (aBuilder_ == null) {
          return a_.get(index);
        } else {
          return aBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.set(index, value);
          onChanged();
        } else {
          aBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.set(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder addA(com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(value);
          onChanged();
        } else {
          aBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(index, value);
          onChanged();
        } else {
          aBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder addA(
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectA> values) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, a_);
          onChanged();
        } else {
          aBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder clearA() {
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          aBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public Builder removeA(int index) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.remove(index);
          onChanged();
        } else {
          aBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder getABuilder(
          int index) {
        return getAFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getAOrBuilder(
          int index) {
        if (aBuilder_ == null) {
          return a_.get(index);  } else {
          return aBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
           getAOrBuilderList() {
        if (aBuilder_ != null) {
          return aBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(a_);
        }
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addABuilder() {
        return getAFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addABuilder(
          int index) {
        return getAFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ListObjectA a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder> 
           getABuilderList() {
        return getAFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
          getAFieldBuilder() {
        if (aBuilder_ == null) {
          aBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder>(
                  a_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          a_ = null;
        }
        return aBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListListObjectA)
    }

    // @@protoc_insertion_point(class_scope:ListListObjectA)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListListObjectA DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListListObjectA();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListListObjectA>
        PARSER = new com.google.protobuf.AbstractParser<ListListObjectA>() {
      @java.lang.Override
      public ListListObjectA parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListListObjectA(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListListObjectA> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapObjectAOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapObjectA)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.ObjectA key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>.ObjectA key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getKey();
    /**
     * <code>.ObjectA key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKeyOrBuilder();

    /**
     * <code>.ListInteger value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>.ListInteger value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListInteger getValue();
    /**
     * <code>.ListInteger value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code MapObjectA}
   */
  public  static final class MapObjectA extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MapObjectA)
      MapObjectAOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapObjectA.newBuilder() to construct.
    private MapObjectA(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapObjectA() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MapObjectA();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MapObjectA(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder subBuilder = null;
              if (key_ != null) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder subBuilder = null;
              if (value_ != null) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListInteger.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapObjectA_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapObjectA_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.MapObjectA.class, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder.class);
    }

    public static final int KEY_FIELD_NUMBER = 1;
    private com.zfoo.protocol.packet.ProtobufObject.ObjectA key_;
    /**
     * <code>.ObjectA key = 1;</code>
     */
    public boolean hasKey() {
      return key_ != null;
    }
    /**
     * <code>.ObjectA key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKey() {
      return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : key_;
    }
    /**
     * <code>.ObjectA key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKeyOrBuilder() {
      return getKey();
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private com.zfoo.protocol.packet.ProtobufObject.ListInteger value_;
    /**
     * <code>.ListInteger value = 2;</code>
     */
    public boolean hasValue() {
      return value_ != null;
    }
    /**
     * <code>.ListInteger value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListInteger getValue() {
      return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance() : value_;
    }
    /**
     * <code>.ListInteger value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getValueOrBuilder() {
      return getValue();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (key_ != null) {
        output.writeMessage(1, getKey());
      }
      if (value_ != null) {
        output.writeMessage(2, getValue());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (key_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (value_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.MapObjectA)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.MapObjectA other = (com.zfoo.protocol.packet.ProtobufObject.MapObjectA) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.MapObjectA prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MapObjectA}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MapObjectA)
        com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapObjectA_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapObjectA_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.MapObjectA.class, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.MapObjectA.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          key_ = null;
          keyBuilder_ = null;
        }
        if (valueBuilder_ == null) {
          value_ = null;
        } else {
          value_ = null;
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapObjectA_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.MapObjectA.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA build() {
        com.zfoo.protocol.packet.ProtobufObject.MapObjectA result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.MapObjectA result = new com.zfoo.protocol.packet.ProtobufObject.MapObjectA(this);
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (valueBuilder_ == null) {
          result.value_ = value_;
        } else {
          result.value_ = valueBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.MapObjectA) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.MapObjectA)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.MapObjectA other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.MapObjectA.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.MapObjectA parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.MapObjectA) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ObjectA key_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> keyBuilder_;
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public boolean hasKey() {
        return keyBuilder_ != null || key_ != null;
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public Builder setKey(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public Builder setKey(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public Builder mergeKey(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (keyBuilder_ == null) {
          if (key_ != null) {
            key_ =
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          key_ = null;
          keyBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getKeyBuilder() {
        
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>.ObjectA key = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ListInteger value_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> valueBuilder_;
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public boolean hasValue() {
        return valueBuilder_ != null || value_ != null;
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public Builder setValue(com.zfoo.protocol.packet.ProtobufObject.ListInteger value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          valueBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public Builder setValue(
          com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public Builder mergeValue(com.zfoo.protocol.packet.ProtobufObject.ListInteger value) {
        if (valueBuilder_ == null) {
          if (value_ != null) {
            value_ =
              com.zfoo.protocol.packet.ProtobufObject.ListInteger.newBuilder(value_).mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          valueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public Builder clearValue() {
        if (valueBuilder_ == null) {
          value_ = null;
          onChanged();
        } else {
          value_ = null;
          valueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder getValueBuilder() {
        
        onChanged();
        return getValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ListInteger.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.ListInteger value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder> 
          getValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListInteger, com.zfoo.protocol.packet.ProtobufObject.ListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListIntegerOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MapObjectA)
    }

    // @@protoc_insertion_point(class_scope:MapObjectA)
    private static final com.zfoo.protocol.packet.ProtobufObject.MapObjectA DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.MapObjectA();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapObjectA getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MapObjectA>
        PARSER = new com.google.protobuf.AbstractParser<MapObjectA>() {
      @java.lang.Override
      public MapObjectA parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MapObjectA(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<MapObjectA> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.MapObjectA getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapListListObjectAOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapListListObjectA)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getKey();
    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder getKeyOrBuilder();

    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getValue();
    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code MapListListObjectA}
   */
  public  static final class MapListListObjectA extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MapListListObjectA)
      MapListListObjectAOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapListListObjectA.newBuilder() to construct.
    private MapListListObjectA(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapListListObjectA() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MapListListObjectA();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MapListListObjectA(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder subBuilder = null;
              if (key_ != null) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder subBuilder = null;
              if (value_ != null) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListListObjectA_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListListObjectA_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder.class);
    }

    public static final int KEY_FIELD_NUMBER = 1;
    private com.zfoo.protocol.packet.ProtobufObject.ListListObjectA key_;
    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    public boolean hasKey() {
      return key_ != null;
    }
    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getKey() {
      return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.getDefaultInstance() : key_;
    }
    /**
     * <code>.ListListObjectA key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder getKeyOrBuilder() {
      return getKey();
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private com.zfoo.protocol.packet.ProtobufObject.ListListListInteger value_;
    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    public boolean hasValue() {
      return value_ != null;
    }
    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getValue() {
      return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.getDefaultInstance() : value_;
    }
    /**
     * <code>.ListListListInteger value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder getValueOrBuilder() {
      return getValue();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (key_ != null) {
        output.writeMessage(1, getKey());
      }
      if (value_ != null) {
        output.writeMessage(2, getValue());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (key_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (value_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA other = (com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MapListListObjectA}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MapListListObjectA)
        com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListListObjectA_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListListObjectA_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.class, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          key_ = null;
          keyBuilder_ = null;
        }
        if (valueBuilder_ == null) {
          value_ = null;
        } else {
          value_ = null;
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListListObjectA_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA build() {
        com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA result = new com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA(this);
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (valueBuilder_ == null) {
          result.value_ = value_;
        } else {
          result.value_ = valueBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ListListObjectA key_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder> keyBuilder_;
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public boolean hasKey() {
        return keyBuilder_ != null || key_ != null;
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public Builder setKey(com.zfoo.protocol.packet.ProtobufObject.ListListObjectA value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public Builder setKey(
          com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public Builder mergeKey(com.zfoo.protocol.packet.ProtobufObject.ListListObjectA value) {
        if (keyBuilder_ == null) {
          if (key_ != null) {
            key_ =
              com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          key_ = null;
          keyBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder getKeyBuilder() {
        
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>.ListListObjectA key = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListObjectAOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ListListListInteger value_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder> valueBuilder_;
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public boolean hasValue() {
        return valueBuilder_ != null || value_ != null;
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public Builder setValue(com.zfoo.protocol.packet.ProtobufObject.ListListListInteger value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          valueBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public Builder setValue(
          com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public Builder mergeValue(com.zfoo.protocol.packet.ProtobufObject.ListListListInteger value) {
        if (valueBuilder_ == null) {
          if (value_ != null) {
            value_ =
              com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.newBuilder(value_).mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          valueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public Builder clearValue() {
        if (valueBuilder_ == null) {
          value_ = null;
          onChanged();
        } else {
          value_ = null;
          valueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder getValueBuilder() {
        
        onChanged();
        return getValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.ListListListInteger value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder> 
          getValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListListIntegerOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MapListListObjectA)
    }

    // @@protoc_insertion_point(class_scope:MapListListObjectA)
    private static final com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MapListListObjectA>
        PARSER = new com.google.protobuf.AbstractParser<MapListListObjectA>() {
      @java.lang.Override
      public MapListListObjectA parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MapListListObjectA(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<MapListListObjectA> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapIntegerStringOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapIntegerString)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */
    int getACount();
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */
    boolean containsA(
        int key);
    /**
     * Use {@link #getAMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.String>
    getA();
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.String>
    getAMap();
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    java.lang.String getAOrDefault(
        int key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    java.lang.String getAOrThrow(
        int key);
  }
  /**
   * Protobuf type {@code MapIntegerString}
   */
  public  static final class MapIntegerString extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MapIntegerString)
      MapIntegerStringOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapIntegerString.newBuilder() to construct.
    private MapIntegerString(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapIntegerString() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MapIntegerString();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MapIntegerString(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = com.google.protobuf.MapField.newMapField(
                    ADefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
              a__ = input.readMessage(
                  ADefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              a_.getMutableMap().put(
                  a__.getKey(), a__.getValue());
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetA();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.class, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private static final class ADefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.String>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_AEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.String> a_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
    internalGetA() {
      if (a_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ADefaultEntryHolder.defaultEntry);
      }
      return a_;
    }

    public int getACount() {
      return internalGetA().getMap().size();
    }
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    public boolean containsA(
        int key) {
      
      return internalGetA().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.String> getA() {
      return getAMap();
    }
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    public java.util.Map<java.lang.Integer, java.lang.String> getAMap() {
      return internalGetA().getMap();
    }
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    public java.lang.String getAOrDefault(
        int key,
        java.lang.String defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetA().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, string&gt; a = 1;</code>
     */

    public java.lang.String getAOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetA().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetA(),
          ADefaultEntryHolder.defaultEntry,
          1);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.Integer, java.lang.String> entry
           : internalGetA().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
        a__ = ADefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, a__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.MapIntegerString)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.MapIntegerString other = (com.zfoo.protocol.packet.ProtobufObject.MapIntegerString) obj;

      if (!internalGetA().equals(
          other.internalGetA())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetA().getMap().isEmpty()) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + internalGetA().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MapIntegerString}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MapIntegerString)
        com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetA();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableA();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.class, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableA().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapIntegerString_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString build() {
        com.zfoo.protocol.packet.ProtobufObject.MapIntegerString result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.MapIntegerString result = new com.zfoo.protocol.packet.ProtobufObject.MapIntegerString(this);
        int from_bitField0_ = bitField0_;
        result.a_ = internalGetA();
        result.a_.makeImmutable();
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.MapIntegerString) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.MapIntegerString)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance()) return this;
        internalGetMutableA().mergeFrom(
            other.internalGetA());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.MapIntegerString parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.MapIntegerString) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.String> a_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetA() {
        if (a_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ADefaultEntryHolder.defaultEntry);
        }
        return a_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetMutableA() {
        onChanged();;
        if (a_ == null) {
          a_ = com.google.protobuf.MapField.newMapField(
              ADefaultEntryHolder.defaultEntry);
        }
        if (!a_.isMutable()) {
          a_ = a_.copy();
        }
        return a_;
      }

      public int getACount() {
        return internalGetA().getMap().size();
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public boolean containsA(
          int key) {
        
        return internalGetA().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String> getA() {
        return getAMap();
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public java.util.Map<java.lang.Integer, java.lang.String> getAMap() {
        return internalGetA().getMap();
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public java.lang.String getAOrDefault(
          int key,
          java.lang.String defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetA().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public java.lang.String getAOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetA().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearA() {
        internalGetMutableA().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public Builder removeA(
          int key) {
        
        internalGetMutableA().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String>
      getMutableA() {
        return internalGetMutableA().getMutableMap();
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */
      public Builder putA(
          int key,
          java.lang.String value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableA().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; a = 1;</code>
       */

      public Builder putAllA(
          java.util.Map<java.lang.Integer, java.lang.String> values) {
        internalGetMutableA().getMutableMap()
            .putAll(values);
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MapIntegerString)
    }

    // @@protoc_insertion_point(class_scope:MapIntegerString)
    private static final com.zfoo.protocol.packet.ProtobufObject.MapIntegerString DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.MapIntegerString();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MapIntegerString>
        PARSER = new com.google.protobuf.AbstractParser<MapIntegerString>() {
      @java.lang.Override
      public MapIntegerString parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MapIntegerString(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<MapIntegerString> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListMapIntegerStringOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListMapIntegerString)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> 
        getAList();
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getA(int index);
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    int getACount();
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getAOrBuilderList();
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getAOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListMapIntegerString}
   */
  public  static final class ListMapIntegerString extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListMapIntegerString)
      ListMapIntegerStringOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListMapIntegerString.newBuilder() to construct.
    private ListMapIntegerString(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListMapIntegerString() {
      a_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListMapIntegerString();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListMapIntegerString(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>();
                mutable_bitField0_ |= 0x00000001;
              }
              a_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          a_ = java.util.Collections.unmodifiableList(a_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListMapIntegerString_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListMapIntegerString_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.class, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> a_;
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getAList() {
      return a_;
    }
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getAOrBuilderList() {
      return a_;
    }
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    public int getACount() {
      return a_.size();
    }
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getA(int index) {
      return a_.get(index);
    }
    /**
     * <code>repeated .MapIntegerString a = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getAOrBuilder(
        int index) {
      return a_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < a_.size(); i++) {
        output.writeMessage(1, a_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString other = (com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString) obj;

      if (!getAList()
          .equals(other.getAList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getACount() > 0) {
        hash = (37 * hash) + A_FIELD_NUMBER;
        hash = (53 * hash) + getAList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListMapIntegerString}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListMapIntegerString)
        com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListMapIntegerString_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListMapIntegerString_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.class, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          aBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ListMapIntegerString_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString build() {
        com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString result = new com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString(this);
        int from_bitField0_ = bitField0_;
        if (aBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            a_ = java.util.Collections.unmodifiableList(a_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.a_ = a_;
        } else {
          result.a_ = aBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance()) return this;
        if (aBuilder_ == null) {
          if (!other.a_.isEmpty()) {
            if (a_.isEmpty()) {
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAIsMutable();
              a_.addAll(other.a_);
            }
            onChanged();
          }
        } else {
          if (!other.a_.isEmpty()) {
            if (aBuilder_.isEmpty()) {
              aBuilder_.dispose();
              aBuilder_ = null;
              a_ = other.a_;
              bitField0_ = (bitField0_ & ~0x00000001);
              aBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAFieldBuilder() : null;
            } else {
              aBuilder_.addAllMessages(other.a_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> a_ =
        java.util.Collections.emptyList();
      private void ensureAIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          a_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>(a_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> aBuilder_;

      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getAList() {
        if (aBuilder_ == null) {
          return java.util.Collections.unmodifiableList(a_);
        } else {
          return aBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public int getACount() {
        if (aBuilder_ == null) {
          return a_.size();
        } else {
          return aBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getA(int index) {
        if (aBuilder_ == null) {
          return a_.get(index);
        } else {
          return aBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.set(index, value);
          onChanged();
        } else {
          aBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder setA(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.set(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder addA(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(value);
          onChanged();
        } else {
          aBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (aBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAIsMutable();
          a_.add(index, value);
          onChanged();
        } else {
          aBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder addA(
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder addA(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.add(index, builderForValue.build());
          onChanged();
        } else {
          aBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder addAllA(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> values) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, a_);
          onChanged();
        } else {
          aBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder clearA() {
        if (aBuilder_ == null) {
          a_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          aBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public Builder removeA(int index) {
        if (aBuilder_ == null) {
          ensureAIsMutable();
          a_.remove(index);
          onChanged();
        } else {
          aBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder getABuilder(
          int index) {
        return getAFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getAOrBuilder(
          int index) {
        if (aBuilder_ == null) {
          return a_.get(index);  } else {
          return aBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
           getAOrBuilderList() {
        if (aBuilder_ != null) {
          return aBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(a_);
        }
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addABuilder() {
        return getAFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addABuilder(
          int index) {
        return getAFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <code>repeated .MapIntegerString a = 1;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder> 
           getABuilderList() {
        return getAFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
          getAFieldBuilder() {
        if (aBuilder_ == null) {
          aBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder>(
                  a_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          a_ = null;
        }
        return aBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListMapIntegerString)
    }

    // @@protoc_insertion_point(class_scope:ListMapIntegerString)
    private static final com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListMapIntegerString>
        PARSER = new com.google.protobuf.AbstractParser<ListMapIntegerString>() {
      @java.lang.Override
      public ListMapIntegerString parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListMapIntegerString(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListMapIntegerString> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapListMapIntegerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapListMapInteger)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getKey();
    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getKeyOrBuilder();

    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getValue();
    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code MapListMapInteger}
   */
  public  static final class MapListMapInteger extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MapListMapInteger)
      MapListMapIntegerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapListMapInteger.newBuilder() to construct.
    private MapListMapInteger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapListMapInteger() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MapListMapInteger();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MapListMapInteger(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder subBuilder = null;
              if (key_ != null) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder subBuilder = null;
              if (value_ != null) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListMapInteger_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListMapInteger_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.class, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder.class);
    }

    public static final int KEY_FIELD_NUMBER = 1;
    private com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString key_;
    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    public boolean hasKey() {
      return key_ != null;
    }
    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getKey() {
      return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : key_;
    }
    /**
     * <code>.ListMapIntegerString key = 1;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getKeyOrBuilder() {
      return getKey();
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value_;
    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    public boolean hasValue() {
      return value_ != null;
    }
    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getValue() {
      return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : value_;
    }
    /**
     * <code>.ListMapIntegerString value = 2;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getValueOrBuilder() {
      return getValue();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (key_ != null) {
        output.writeMessage(1, getKey());
      }
      if (value_ != null) {
        output.writeMessage(2, getValue());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (key_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (value_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger other = (com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MapListMapInteger}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MapListMapInteger)
        com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListMapInteger_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListMapInteger_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.class, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          key_ = null;
          keyBuilder_ = null;
        }
        if (valueBuilder_ == null) {
          value_ = null;
        } else {
          value_ = null;
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_MapListMapInteger_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger build() {
        com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger result = new com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger(this);
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (valueBuilder_ == null) {
          result.value_ = value_;
        } else {
          result.value_ = valueBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString key_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder> keyBuilder_;
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public boolean hasKey() {
        return keyBuilder_ != null || key_ != null;
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public Builder setKey(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public Builder setKey(
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public Builder mergeKey(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value) {
        if (keyBuilder_ == null) {
          if (key_ != null) {
            key_ =
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          key_ = null;
          keyBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder getKeyBuilder() {
        
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>.ListMapIntegerString key = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder> valueBuilder_;
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public boolean hasValue() {
        return valueBuilder_ != null || value_ != null;
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public Builder setValue(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          valueBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public Builder setValue(
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public Builder mergeValue(com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString value) {
        if (valueBuilder_ == null) {
          if (value_ != null) {
            value_ =
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.newBuilder(value_).mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          valueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public Builder clearValue() {
        if (valueBuilder_ == null) {
          value_ = null;
          onChanged();
        } else {
          value_ = null;
          valueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder getValueBuilder() {
        
        onChanged();
        return getValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.ListMapIntegerString value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder> 
          getValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.ListMapIntegerStringOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MapListMapInteger)
    }

    // @@protoc_insertion_point(class_scope:MapListMapInteger)
    private static final com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MapListMapInteger>
        PARSER = new com.google.protobuf.AbstractParser<MapListMapInteger>() {
      @java.lang.Override
      public MapListMapInteger parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MapListMapInteger(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<MapListMapInteger> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProtobufComplexObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ProtobufComplexObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * protobuf不支持单个byte，用int代替，增加了一点性能开销
     * </pre>
     *
     * <code>int32 a = 1;</code>
     */
    int getA();

    /**
     * <code>int32 aa = 2;</code>
     */
    int getAa();

    /**
     * <code>bytes aaa = 3;</code>
     */
    com.google.protobuf.ByteString getAaa();

    /**
     * <code>bytes aaaa = 4;</code>
     */
    com.google.protobuf.ByteString getAaaa();

    /**
     * <pre>
     * protobuf不支持单个short，用int代替，增加了一点性能开销
     * </pre>
     *
     * <code>int32 b = 5;</code>
     */
    int getB();

    /**
     * <code>int32 bb = 6;</code>
     */
    int getBb();

    /**
     * <pre>
     * protobuf不支持单个short，用bytes代替，减少了一点性能开销
     * </pre>
     *
     * <code>bytes bbb = 7;</code>
     */
    com.google.protobuf.ByteString getBbb();

    /**
     * <code>bytes bbbb = 8;</code>
     */
    com.google.protobuf.ByteString getBbbb();

    /**
     * <code>int32 c = 9;</code>
     */
    int getC();

    /**
     * <code>int32 cc = 10;</code>
     */
    int getCc();

    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    java.util.List<java.lang.Integer> getCccList();
    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    int getCccCount();
    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    int getCcc(int index);

    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    java.util.List<java.lang.Integer> getCcccList();
    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    int getCcccCount();
    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    int getCccc(int index);

    /**
     * <code>int64 d = 13;</code>
     */
    long getD();

    /**
     * <code>int64 dd = 14;</code>
     */
    long getDd();

    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    java.util.List<java.lang.Long> getDddList();
    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    int getDddCount();
    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    long getDdd(int index);

    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    java.util.List<java.lang.Long> getDdddList();
    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    int getDdddCount();
    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    long getDddd(int index);

    /**
     * <code>float e = 17;</code>
     */
    float getE();

    /**
     * <code>float ee = 18;</code>
     */
    float getEe();

    /**
     * <code>repeated float eee = 19;</code>
     */
    java.util.List<java.lang.Float> getEeeList();
    /**
     * <code>repeated float eee = 19;</code>
     */
    int getEeeCount();
    /**
     * <code>repeated float eee = 19;</code>
     */
    float getEee(int index);

    /**
     * <code>repeated float eeee = 20;</code>
     */
    java.util.List<java.lang.Float> getEeeeList();
    /**
     * <code>repeated float eeee = 20;</code>
     */
    int getEeeeCount();
    /**
     * <code>repeated float eeee = 20;</code>
     */
    float getEeee(int index);

    /**
     * <code>double f = 21;</code>
     */
    double getF();

    /**
     * <code>double ff = 22;</code>
     */
    double getFf();

    /**
     * <code>repeated double fff = 23;</code>
     */
    java.util.List<java.lang.Double> getFffList();
    /**
     * <code>repeated double fff = 23;</code>
     */
    int getFffCount();
    /**
     * <code>repeated double fff = 23;</code>
     */
    double getFff(int index);

    /**
     * <code>repeated double ffff = 24;</code>
     */
    java.util.List<java.lang.Double> getFfffList();
    /**
     * <code>repeated double ffff = 24;</code>
     */
    int getFfffCount();
    /**
     * <code>repeated double ffff = 24;</code>
     */
    double getFfff(int index);

    /**
     * <code>bool g = 25;</code>
     */
    boolean getG();

    /**
     * <code>bool gg = 26;</code>
     */
    boolean getGg();

    /**
     * <code>repeated bool ggg = 27;</code>
     */
    java.util.List<java.lang.Boolean> getGggList();
    /**
     * <code>repeated bool ggg = 27;</code>
     */
    int getGggCount();
    /**
     * <code>repeated bool ggg = 27;</code>
     */
    boolean getGgg(int index);

    /**
     * <code>repeated bool gggg = 28;</code>
     */
    java.util.List<java.lang.Boolean> getGgggList();
    /**
     * <code>repeated bool gggg = 28;</code>
     */
    int getGgggCount();
    /**
     * <code>repeated bool gggg = 28;</code>
     */
    boolean getGggg(int index);

    /**
     * <pre>
     * protobuf不支持char，用string代替，增加了一点性能开销
     * </pre>
     *
     * <code>string h = 29;</code>
     */
    java.lang.String getH();
    /**
     * <pre>
     * protobuf不支持char，用string代替，增加了一点性能开销
     * </pre>
     *
     * <code>string h = 29;</code>
     */
    com.google.protobuf.ByteString
        getHBytes();

    /**
     * <code>string hh = 30;</code>
     */
    java.lang.String getHh();
    /**
     * <code>string hh = 30;</code>
     */
    com.google.protobuf.ByteString
        getHhBytes();

    /**
     * <code>repeated string hhh = 31;</code>
     */
    java.util.List<java.lang.String>
        getHhhList();
    /**
     * <code>repeated string hhh = 31;</code>
     */
    int getHhhCount();
    /**
     * <code>repeated string hhh = 31;</code>
     */
    java.lang.String getHhh(int index);
    /**
     * <code>repeated string hhh = 31;</code>
     */
    com.google.protobuf.ByteString
        getHhhBytes(int index);

    /**
     * <code>repeated string hhhh = 32;</code>
     */
    java.util.List<java.lang.String>
        getHhhhList();
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    int getHhhhCount();
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    java.lang.String getHhhh(int index);
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    com.google.protobuf.ByteString
        getHhhhBytes(int index);

    /**
     * <code>string jj = 33;</code>
     */
    java.lang.String getJj();
    /**
     * <code>string jj = 33;</code>
     */
    com.google.protobuf.ByteString
        getJjBytes();

    /**
     * <code>repeated string jjj = 34;</code>
     */
    java.util.List<java.lang.String>
        getJjjList();
    /**
     * <code>repeated string jjj = 34;</code>
     */
    int getJjjCount();
    /**
     * <code>repeated string jjj = 34;</code>
     */
    java.lang.String getJjj(int index);
    /**
     * <code>repeated string jjj = 34;</code>
     */
    com.google.protobuf.ByteString
        getJjjBytes(int index);

    /**
     * <code>.ObjectA kk = 35;</code>
     */
    boolean hasKk();
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk();
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder();

    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> 
        getKkkList();
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getKkk(int index);
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    int getKkkCount();
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getKkkOrBuilderList();
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkkOrBuilder(
        int index);

    /**
     * <code>repeated int32 l = 37;</code>
     */
    java.util.List<java.lang.Integer> getLList();
    /**
     * <code>repeated int32 l = 37;</code>
     */
    int getLCount();
    /**
     * <code>repeated int32 l = 37;</code>
     */
    int getL(int index);

    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> 
        getLlList();
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListInteger getLl(int index);
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    int getLlCount();
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getLlOrBuilderList();
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getLlOrBuilder(
        int index);

    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> 
        getLllList();
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectA getLll(int index);
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    int getLllCount();
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getLllOrBuilderList();
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getLllOrBuilder(
        int index);

    /**
     * <code>repeated string llll = 40;</code>
     */
    java.util.List<java.lang.String>
        getLlllList();
    /**
     * <code>repeated string llll = 40;</code>
     */
    int getLlllCount();
    /**
     * <code>repeated string llll = 40;</code>
     */
    java.lang.String getLlll(int index);
    /**
     * <code>repeated string llll = 40;</code>
     */
    com.google.protobuf.ByteString
        getLlllBytes(int index);

    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> 
        getLllllList();
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getLllll(int index);
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    int getLllllCount();
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getLllllOrBuilderList();
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getLllllOrBuilder(
        int index);

    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    int getMCount();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    boolean containsM(
        int key);
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.String>
    getM();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.String>
    getMMap();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    java.lang.String getMOrThrow(
        int key);

    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    int getMmCount();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    boolean containsMm(
        int key);
    /**
     * Use {@link #getMmMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    getMm();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    getMmMap();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
        int key,
        com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue);
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
        int key);

    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA> 
        getMmmList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapObjectA getMmm(int index);
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    int getMmmCount();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder> 
        getMmmOrBuilderList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder getMmmOrBuilder(
        int index);

    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> 
        getMmmmList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getMmmm(int index);
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    int getMmmmCount();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder> 
        getMmmmOrBuilderList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder getMmmmOrBuilder(
        int index);

    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> 
        getMmmmmList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getMmmmm(int index);
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    int getMmmmmCount();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder> 
        getMmmmmOrBuilderList();
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder getMmmmmOrBuilder(
        int index);

    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    java.util.List<java.lang.Integer> getSList();
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    int getSCount();
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    int getS(int index);

    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> 
        getSsList();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListInteger getSs(int index);
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    int getSsCount();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getSsOrBuilderList();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getSsOrBuilder(
        int index);

    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> 
        getSssList();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectA getSss(int index);
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    int getSssCount();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getSssOrBuilderList();
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getSssOrBuilder(
        int index);

    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    java.util.List<java.lang.String>
        getSsssList();
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    int getSsssCount();
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    java.lang.String getSsss(int index);
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    com.google.protobuf.ByteString
        getSsssBytes(int index);

    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> 
        getSssssList();
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getSssss(int index);
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    int getSssssCount();
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getSssssOrBuilderList();
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getSssssOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ProtobufComplexObject}
   */
  public  static final class ProtobufComplexObject extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ProtobufComplexObject)
      ProtobufComplexObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProtobufComplexObject.newBuilder() to construct.
    private ProtobufComplexObject(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProtobufComplexObject() {
      aaa_ = com.google.protobuf.ByteString.EMPTY;
      aaaa_ = com.google.protobuf.ByteString.EMPTY;
      bbb_ = com.google.protobuf.ByteString.EMPTY;
      bbbb_ = com.google.protobuf.ByteString.EMPTY;
      ccc_ = emptyIntList();
      cccc_ = emptyIntList();
      ddd_ = emptyLongList();
      dddd_ = emptyLongList();
      eee_ = emptyFloatList();
      eeee_ = emptyFloatList();
      fff_ = emptyDoubleList();
      ffff_ = emptyDoubleList();
      ggg_ = emptyBooleanList();
      gggg_ = emptyBooleanList();
      h_ = "";
      hh_ = "";
      hhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      hhhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      jj_ = "";
      jjj_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      kkk_ = java.util.Collections.emptyList();
      l_ = emptyIntList();
      ll_ = java.util.Collections.emptyList();
      lll_ = java.util.Collections.emptyList();
      llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      lllll_ = java.util.Collections.emptyList();
      mmm_ = java.util.Collections.emptyList();
      mmmm_ = java.util.Collections.emptyList();
      mmmmm_ = java.util.Collections.emptyList();
      s_ = emptyIntList();
      ss_ = java.util.Collections.emptyList();
      sss_ = java.util.Collections.emptyList();
      ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      sssss_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ProtobufComplexObject();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ProtobufComplexObject(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {

              a_ = input.readInt32();
              break;
            }
            case 16: {

              aa_ = input.readInt32();
              break;
            }
            case 26: {

              aaa_ = input.readBytes();
              break;
            }
            case 34: {

              aaaa_ = input.readBytes();
              break;
            }
            case 40: {

              b_ = input.readInt32();
              break;
            }
            case 48: {

              bb_ = input.readInt32();
              break;
            }
            case 58: {

              bbb_ = input.readBytes();
              break;
            }
            case 66: {

              bbbb_ = input.readBytes();
              break;
            }
            case 72: {

              c_ = input.readInt32();
              break;
            }
            case 80: {

              cc_ = input.readInt32();
              break;
            }
            case 88: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                ccc_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              ccc_.addInt(input.readInt32());
              break;
            }
            case 90: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                ccc_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                ccc_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 96: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                cccc_ = newIntList();
                mutable_bitField0_ |= 0x00000002;
              }
              cccc_.addInt(input.readInt32());
              break;
            }
            case 98: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                cccc_ = newIntList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                cccc_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 104: {

              d_ = input.readInt64();
              break;
            }
            case 112: {

              dd_ = input.readInt64();
              break;
            }
            case 120: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                ddd_ = newLongList();
                mutable_bitField0_ |= 0x00000004;
              }
              ddd_.addLong(input.readInt64());
              break;
            }
            case 122: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
                ddd_ = newLongList();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                ddd_.addLong(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 128: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                dddd_ = newLongList();
                mutable_bitField0_ |= 0x00000008;
              }
              dddd_.addLong(input.readInt64());
              break;
            }
            case 130: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) != 0) && input.getBytesUntilLimit() > 0) {
                dddd_ = newLongList();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                dddd_.addLong(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 141: {

              e_ = input.readFloat();
              break;
            }
            case 149: {

              ee_ = input.readFloat();
              break;
            }
            case 157: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                eee_ = newFloatList();
                mutable_bitField0_ |= 0x00000010;
              }
              eee_.addFloat(input.readFloat());
              break;
            }
            case 154: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000010) != 0) && input.getBytesUntilLimit() > 0) {
                eee_ = newFloatList();
                mutable_bitField0_ |= 0x00000010;
              }
              while (input.getBytesUntilLimit() > 0) {
                eee_.addFloat(input.readFloat());
              }
              input.popLimit(limit);
              break;
            }
            case 165: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                eeee_ = newFloatList();
                mutable_bitField0_ |= 0x00000020;
              }
              eeee_.addFloat(input.readFloat());
              break;
            }
            case 162: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000020) != 0) && input.getBytesUntilLimit() > 0) {
                eeee_ = newFloatList();
                mutable_bitField0_ |= 0x00000020;
              }
              while (input.getBytesUntilLimit() > 0) {
                eeee_.addFloat(input.readFloat());
              }
              input.popLimit(limit);
              break;
            }
            case 169: {

              f_ = input.readDouble();
              break;
            }
            case 177: {

              ff_ = input.readDouble();
              break;
            }
            case 185: {
              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                fff_ = newDoubleList();
                mutable_bitField0_ |= 0x00000040;
              }
              fff_.addDouble(input.readDouble());
              break;
            }
            case 186: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000040) != 0) && input.getBytesUntilLimit() > 0) {
                fff_ = newDoubleList();
                mutable_bitField0_ |= 0x00000040;
              }
              while (input.getBytesUntilLimit() > 0) {
                fff_.addDouble(input.readDouble());
              }
              input.popLimit(limit);
              break;
            }
            case 193: {
              if (!((mutable_bitField0_ & 0x00000080) != 0)) {
                ffff_ = newDoubleList();
                mutable_bitField0_ |= 0x00000080;
              }
              ffff_.addDouble(input.readDouble());
              break;
            }
            case 194: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000080) != 0) && input.getBytesUntilLimit() > 0) {
                ffff_ = newDoubleList();
                mutable_bitField0_ |= 0x00000080;
              }
              while (input.getBytesUntilLimit() > 0) {
                ffff_.addDouble(input.readDouble());
              }
              input.popLimit(limit);
              break;
            }
            case 200: {

              g_ = input.readBool();
              break;
            }
            case 208: {

              gg_ = input.readBool();
              break;
            }
            case 216: {
              if (!((mutable_bitField0_ & 0x00000100) != 0)) {
                ggg_ = newBooleanList();
                mutable_bitField0_ |= 0x00000100;
              }
              ggg_.addBoolean(input.readBool());
              break;
            }
            case 218: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000100) != 0) && input.getBytesUntilLimit() > 0) {
                ggg_ = newBooleanList();
                mutable_bitField0_ |= 0x00000100;
              }
              while (input.getBytesUntilLimit() > 0) {
                ggg_.addBoolean(input.readBool());
              }
              input.popLimit(limit);
              break;
            }
            case 224: {
              if (!((mutable_bitField0_ & 0x00000200) != 0)) {
                gggg_ = newBooleanList();
                mutable_bitField0_ |= 0x00000200;
              }
              gggg_.addBoolean(input.readBool());
              break;
            }
            case 226: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000200) != 0) && input.getBytesUntilLimit() > 0) {
                gggg_ = newBooleanList();
                mutable_bitField0_ |= 0x00000200;
              }
              while (input.getBytesUntilLimit() > 0) {
                gggg_.addBoolean(input.readBool());
              }
              input.popLimit(limit);
              break;
            }
            case 234: {
              java.lang.String s = input.readStringRequireUtf8();

              h_ = s;
              break;
            }
            case 242: {
              java.lang.String s = input.readStringRequireUtf8();

              hh_ = s;
              break;
            }
            case 250: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000400) != 0)) {
                hhh_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000400;
              }
              hhh_.add(s);
              break;
            }
            case 258: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000800) != 0)) {
                hhhh_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000800;
              }
              hhhh_.add(s);
              break;
            }
            case 266: {
              java.lang.String s = input.readStringRequireUtf8();

              jj_ = s;
              break;
            }
            case 274: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00001000) != 0)) {
                jjj_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00001000;
              }
              jjj_.add(s);
              break;
            }
            case 282: {
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder subBuilder = null;
              if (kk_ != null) {
                subBuilder = kk_.toBuilder();
              }
              kk_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kk_);
                kk_ = subBuilder.buildPartial();
              }

              break;
            }
            case 290: {
              if (!((mutable_bitField0_ & 0x00002000) != 0)) {
                kkk_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>();
                mutable_bitField0_ |= 0x00002000;
              }
              kkk_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry));
              break;
            }
            case 296: {
              if (!((mutable_bitField0_ & 0x00004000) != 0)) {
                l_ = newIntList();
                mutable_bitField0_ |= 0x00004000;
              }
              l_.addInt(input.readInt32());
              break;
            }
            case 298: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00004000) != 0) && input.getBytesUntilLimit() > 0) {
                l_ = newIntList();
                mutable_bitField0_ |= 0x00004000;
              }
              while (input.getBytesUntilLimit() > 0) {
                l_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 306: {
              if (!((mutable_bitField0_ & 0x00008000) != 0)) {
                ll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>();
                mutable_bitField0_ |= 0x00008000;
              }
              ll_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListListInteger.parser(), extensionRegistry));
              break;
            }
            case 314: {
              if (!((mutable_bitField0_ & 0x00010000) != 0)) {
                lll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>();
                mutable_bitField0_ |= 0x00010000;
              }
              lll_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListObjectA.parser(), extensionRegistry));
              break;
            }
            case 322: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00020000) != 0)) {
                llll_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00020000;
              }
              llll_.add(s);
              break;
            }
            case 330: {
              if (!((mutable_bitField0_ & 0x00040000) != 0)) {
                lllll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>();
                mutable_bitField0_ |= 0x00040000;
              }
              lllll_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.parser(), extensionRegistry));
              break;
            }
            case 410: {
              if (!((mutable_bitField0_ & 0x00080000) != 0)) {
                m_ = com.google.protobuf.MapField.newMapField(
                    MDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00080000;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
              m__ = input.readMessage(
                  MDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              m_.getMutableMap().put(
                  m__.getKey(), m__.getValue());
              break;
            }
            case 418: {
              if (!((mutable_bitField0_ & 0x00100000) != 0)) {
                mm_ = com.google.protobuf.MapField.newMapField(
                    MmDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00100000;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
              mm__ = input.readMessage(
                  MmDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              mm_.getMutableMap().put(
                  mm__.getKey(), mm__.getValue());
              break;
            }
            case 426: {
              if (!((mutable_bitField0_ & 0x00200000) != 0)) {
                mmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapObjectA>();
                mutable_bitField0_ |= 0x00200000;
              }
              mmm_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapObjectA.parser(), extensionRegistry));
              break;
            }
            case 434: {
              if (!((mutable_bitField0_ & 0x00400000) != 0)) {
                mmmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA>();
                mutable_bitField0_ |= 0x00400000;
              }
              mmmm_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.parser(), extensionRegistry));
              break;
            }
            case 442: {
              if (!((mutable_bitField0_ & 0x00800000) != 0)) {
                mmmmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger>();
                mutable_bitField0_ |= 0x00800000;
              }
              mmmmm_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.parser(), extensionRegistry));
              break;
            }
            case 488: {
              if (!((mutable_bitField0_ & 0x01000000) != 0)) {
                s_ = newIntList();
                mutable_bitField0_ |= 0x01000000;
              }
              s_.addInt(input.readInt32());
              break;
            }
            case 490: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x01000000) != 0) && input.getBytesUntilLimit() > 0) {
                s_ = newIntList();
                mutable_bitField0_ |= 0x01000000;
              }
              while (input.getBytesUntilLimit() > 0) {
                s_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 498: {
              if (!((mutable_bitField0_ & 0x02000000) != 0)) {
                ss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>();
                mutable_bitField0_ |= 0x02000000;
              }
              ss_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListListInteger.parser(), extensionRegistry));
              break;
            }
            case 506: {
              if (!((mutable_bitField0_ & 0x04000000) != 0)) {
                sss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>();
                mutable_bitField0_ |= 0x04000000;
              }
              sss_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ListObjectA.parser(), extensionRegistry));
              break;
            }
            case 514: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x08000000) != 0)) {
                ssss_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x08000000;
              }
              ssss_.add(s);
              break;
            }
            case 522: {
              if (!((mutable_bitField0_ & 0x10000000) != 0)) {
                sssss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>();
                mutable_bitField0_ |= 0x10000000;
              }
              sssss_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          ccc_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          cccc_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          ddd_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          dddd_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          eee_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000020) != 0)) {
          eeee_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000040) != 0)) {
          fff_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000080) != 0)) {
          ffff_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000100) != 0)) {
          ggg_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000200) != 0)) {
          gggg_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000400) != 0)) {
          hhh_ = hhh_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000800) != 0)) {
          hhhh_ = hhhh_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00001000) != 0)) {
          jjj_ = jjj_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00002000) != 0)) {
          kkk_ = java.util.Collections.unmodifiableList(kkk_);
        }
        if (((mutable_bitField0_ & 0x00004000) != 0)) {
          l_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00008000) != 0)) {
          ll_ = java.util.Collections.unmodifiableList(ll_);
        }
        if (((mutable_bitField0_ & 0x00010000) != 0)) {
          lll_ = java.util.Collections.unmodifiableList(lll_);
        }
        if (((mutable_bitField0_ & 0x00020000) != 0)) {
          llll_ = llll_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00040000) != 0)) {
          lllll_ = java.util.Collections.unmodifiableList(lllll_);
        }
        if (((mutable_bitField0_ & 0x00200000) != 0)) {
          mmm_ = java.util.Collections.unmodifiableList(mmm_);
        }
        if (((mutable_bitField0_ & 0x00400000) != 0)) {
          mmmm_ = java.util.Collections.unmodifiableList(mmmm_);
        }
        if (((mutable_bitField0_ & 0x00800000) != 0)) {
          mmmmm_ = java.util.Collections.unmodifiableList(mmmmm_);
        }
        if (((mutable_bitField0_ & 0x01000000) != 0)) {
          s_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x02000000) != 0)) {
          ss_ = java.util.Collections.unmodifiableList(ss_);
        }
        if (((mutable_bitField0_ & 0x04000000) != 0)) {
          sss_ = java.util.Collections.unmodifiableList(sss_);
        }
        if (((mutable_bitField0_ & 0x08000000) != 0)) {
          ssss_ = ssss_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x10000000) != 0)) {
          sssss_ = java.util.Collections.unmodifiableList(sssss_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 51:
          return internalGetM();
        case 52:
          return internalGetMm();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private int a_;
    /**
     * <pre>
     * protobuf不支持单个byte，用int代替，增加了一点性能开销
     * </pre>
     *
     * <code>int32 a = 1;</code>
     */
    public int getA() {
      return a_;
    }

    public static final int AA_FIELD_NUMBER = 2;
    private int aa_;
    /**
     * <code>int32 aa = 2;</code>
     */
    public int getAa() {
      return aa_;
    }

    public static final int AAA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString aaa_;
    /**
     * <code>bytes aaa = 3;</code>
     */
    public com.google.protobuf.ByteString getAaa() {
      return aaa_;
    }

    public static final int AAAA_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString aaaa_;
    /**
     * <code>bytes aaaa = 4;</code>
     */
    public com.google.protobuf.ByteString getAaaa() {
      return aaaa_;
    }

    public static final int B_FIELD_NUMBER = 5;
    private int b_;
    /**
     * <pre>
     * protobuf不支持单个short，用int代替，增加了一点性能开销
     * </pre>
     *
     * <code>int32 b = 5;</code>
     */
    public int getB() {
      return b_;
    }

    public static final int BB_FIELD_NUMBER = 6;
    private int bb_;
    /**
     * <code>int32 bb = 6;</code>
     */
    public int getBb() {
      return bb_;
    }

    public static final int BBB_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString bbb_;
    /**
     * <pre>
     * protobuf不支持单个short，用bytes代替，减少了一点性能开销
     * </pre>
     *
     * <code>bytes bbb = 7;</code>
     */
    public com.google.protobuf.ByteString getBbb() {
      return bbb_;
    }

    public static final int BBBB_FIELD_NUMBER = 8;
    private com.google.protobuf.ByteString bbbb_;
    /**
     * <code>bytes bbbb = 8;</code>
     */
    public com.google.protobuf.ByteString getBbbb() {
      return bbbb_;
    }

    public static final int C_FIELD_NUMBER = 9;
    private int c_;
    /**
     * <code>int32 c = 9;</code>
     */
    public int getC() {
      return c_;
    }

    public static final int CC_FIELD_NUMBER = 10;
    private int cc_;
    /**
     * <code>int32 cc = 10;</code>
     */
    public int getCc() {
      return cc_;
    }

    public static final int CCC_FIELD_NUMBER = 11;
    private com.google.protobuf.Internal.IntList ccc_;
    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    public java.util.List<java.lang.Integer>
        getCccList() {
      return ccc_;
    }
    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    public int getCccCount() {
      return ccc_.size();
    }
    /**
     * <code>repeated int32 ccc = 11;</code>
     */
    public int getCcc(int index) {
      return ccc_.getInt(index);
    }
    private int cccMemoizedSerializedSize = -1;

    public static final int CCCC_FIELD_NUMBER = 12;
    private com.google.protobuf.Internal.IntList cccc_;
    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    public java.util.List<java.lang.Integer>
        getCcccList() {
      return cccc_;
    }
    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    public int getCcccCount() {
      return cccc_.size();
    }
    /**
     * <code>repeated int32 cccc = 12;</code>
     */
    public int getCccc(int index) {
      return cccc_.getInt(index);
    }
    private int ccccMemoizedSerializedSize = -1;

    public static final int D_FIELD_NUMBER = 13;
    private long d_;
    /**
     * <code>int64 d = 13;</code>
     */
    public long getD() {
      return d_;
    }

    public static final int DD_FIELD_NUMBER = 14;
    private long dd_;
    /**
     * <code>int64 dd = 14;</code>
     */
    public long getDd() {
      return dd_;
    }

    public static final int DDD_FIELD_NUMBER = 15;
    private com.google.protobuf.Internal.LongList ddd_;
    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    public java.util.List<java.lang.Long>
        getDddList() {
      return ddd_;
    }
    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    public int getDddCount() {
      return ddd_.size();
    }
    /**
     * <code>repeated int64 ddd = 15;</code>
     */
    public long getDdd(int index) {
      return ddd_.getLong(index);
    }
    private int dddMemoizedSerializedSize = -1;

    public static final int DDDD_FIELD_NUMBER = 16;
    private com.google.protobuf.Internal.LongList dddd_;
    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    public java.util.List<java.lang.Long>
        getDdddList() {
      return dddd_;
    }
    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    public int getDdddCount() {
      return dddd_.size();
    }
    /**
     * <code>repeated int64 dddd = 16;</code>
     */
    public long getDddd(int index) {
      return dddd_.getLong(index);
    }
    private int ddddMemoizedSerializedSize = -1;

    public static final int E_FIELD_NUMBER = 17;
    private float e_;
    /**
     * <code>float e = 17;</code>
     */
    public float getE() {
      return e_;
    }

    public static final int EE_FIELD_NUMBER = 18;
    private float ee_;
    /**
     * <code>float ee = 18;</code>
     */
    public float getEe() {
      return ee_;
    }

    public static final int EEE_FIELD_NUMBER = 19;
    private com.google.protobuf.Internal.FloatList eee_;
    /**
     * <code>repeated float eee = 19;</code>
     */
    public java.util.List<java.lang.Float>
        getEeeList() {
      return eee_;
    }
    /**
     * <code>repeated float eee = 19;</code>
     */
    public int getEeeCount() {
      return eee_.size();
    }
    /**
     * <code>repeated float eee = 19;</code>
     */
    public float getEee(int index) {
      return eee_.getFloat(index);
    }
    private int eeeMemoizedSerializedSize = -1;

    public static final int EEEE_FIELD_NUMBER = 20;
    private com.google.protobuf.Internal.FloatList eeee_;
    /**
     * <code>repeated float eeee = 20;</code>
     */
    public java.util.List<java.lang.Float>
        getEeeeList() {
      return eeee_;
    }
    /**
     * <code>repeated float eeee = 20;</code>
     */
    public int getEeeeCount() {
      return eeee_.size();
    }
    /**
     * <code>repeated float eeee = 20;</code>
     */
    public float getEeee(int index) {
      return eeee_.getFloat(index);
    }
    private int eeeeMemoizedSerializedSize = -1;

    public static final int F_FIELD_NUMBER = 21;
    private double f_;
    /**
     * <code>double f = 21;</code>
     */
    public double getF() {
      return f_;
    }

    public static final int FF_FIELD_NUMBER = 22;
    private double ff_;
    /**
     * <code>double ff = 22;</code>
     */
    public double getFf() {
      return ff_;
    }

    public static final int FFF_FIELD_NUMBER = 23;
    private com.google.protobuf.Internal.DoubleList fff_;
    /**
     * <code>repeated double fff = 23;</code>
     */
    public java.util.List<java.lang.Double>
        getFffList() {
      return fff_;
    }
    /**
     * <code>repeated double fff = 23;</code>
     */
    public int getFffCount() {
      return fff_.size();
    }
    /**
     * <code>repeated double fff = 23;</code>
     */
    public double getFff(int index) {
      return fff_.getDouble(index);
    }
    private int fffMemoizedSerializedSize = -1;

    public static final int FFFF_FIELD_NUMBER = 24;
    private com.google.protobuf.Internal.DoubleList ffff_;
    /**
     * <code>repeated double ffff = 24;</code>
     */
    public java.util.List<java.lang.Double>
        getFfffList() {
      return ffff_;
    }
    /**
     * <code>repeated double ffff = 24;</code>
     */
    public int getFfffCount() {
      return ffff_.size();
    }
    /**
     * <code>repeated double ffff = 24;</code>
     */
    public double getFfff(int index) {
      return ffff_.getDouble(index);
    }
    private int ffffMemoizedSerializedSize = -1;

    public static final int G_FIELD_NUMBER = 25;
    private boolean g_;
    /**
     * <code>bool g = 25;</code>
     */
    public boolean getG() {
      return g_;
    }

    public static final int GG_FIELD_NUMBER = 26;
    private boolean gg_;
    /**
     * <code>bool gg = 26;</code>
     */
    public boolean getGg() {
      return gg_;
    }

    public static final int GGG_FIELD_NUMBER = 27;
    private com.google.protobuf.Internal.BooleanList ggg_;
    /**
     * <code>repeated bool ggg = 27;</code>
     */
    public java.util.List<java.lang.Boolean>
        getGggList() {
      return ggg_;
    }
    /**
     * <code>repeated bool ggg = 27;</code>
     */
    public int getGggCount() {
      return ggg_.size();
    }
    /**
     * <code>repeated bool ggg = 27;</code>
     */
    public boolean getGgg(int index) {
      return ggg_.getBoolean(index);
    }
    private int gggMemoizedSerializedSize = -1;

    public static final int GGGG_FIELD_NUMBER = 28;
    private com.google.protobuf.Internal.BooleanList gggg_;
    /**
     * <code>repeated bool gggg = 28;</code>
     */
    public java.util.List<java.lang.Boolean>
        getGgggList() {
      return gggg_;
    }
    /**
     * <code>repeated bool gggg = 28;</code>
     */
    public int getGgggCount() {
      return gggg_.size();
    }
    /**
     * <code>repeated bool gggg = 28;</code>
     */
    public boolean getGggg(int index) {
      return gggg_.getBoolean(index);
    }
    private int ggggMemoizedSerializedSize = -1;

    public static final int H_FIELD_NUMBER = 29;
    private volatile java.lang.Object h_;
    /**
     * <pre>
     * protobuf不支持char，用string代替，增加了一点性能开销
     * </pre>
     *
     * <code>string h = 29;</code>
     */
    public java.lang.String getH() {
      java.lang.Object ref = h_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        h_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * protobuf不支持char，用string代替，增加了一点性能开销
     * </pre>
     *
     * <code>string h = 29;</code>
     */
    public com.google.protobuf.ByteString
        getHBytes() {
      java.lang.Object ref = h_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        h_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HH_FIELD_NUMBER = 30;
    private volatile java.lang.Object hh_;
    /**
     * <code>string hh = 30;</code>
     */
    public java.lang.String getHh() {
      java.lang.Object ref = hh_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hh_ = s;
        return s;
      }
    }
    /**
     * <code>string hh = 30;</code>
     */
    public com.google.protobuf.ByteString
        getHhBytes() {
      java.lang.Object ref = hh_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hh_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HHH_FIELD_NUMBER = 31;
    private com.google.protobuf.LazyStringList hhh_;
    /**
     * <code>repeated string hhh = 31;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getHhhList() {
      return hhh_;
    }
    /**
     * <code>repeated string hhh = 31;</code>
     */
    public int getHhhCount() {
      return hhh_.size();
    }
    /**
     * <code>repeated string hhh = 31;</code>
     */
    public java.lang.String getHhh(int index) {
      return hhh_.get(index);
    }
    /**
     * <code>repeated string hhh = 31;</code>
     */
    public com.google.protobuf.ByteString
        getHhhBytes(int index) {
      return hhh_.getByteString(index);
    }

    public static final int HHHH_FIELD_NUMBER = 32;
    private com.google.protobuf.LazyStringList hhhh_;
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getHhhhList() {
      return hhhh_;
    }
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    public int getHhhhCount() {
      return hhhh_.size();
    }
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    public java.lang.String getHhhh(int index) {
      return hhhh_.get(index);
    }
    /**
     * <code>repeated string hhhh = 32;</code>
     */
    public com.google.protobuf.ByteString
        getHhhhBytes(int index) {
      return hhhh_.getByteString(index);
    }

    public static final int JJ_FIELD_NUMBER = 33;
    private volatile java.lang.Object jj_;
    /**
     * <code>string jj = 33;</code>
     */
    public java.lang.String getJj() {
      java.lang.Object ref = jj_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        jj_ = s;
        return s;
      }
    }
    /**
     * <code>string jj = 33;</code>
     */
    public com.google.protobuf.ByteString
        getJjBytes() {
      java.lang.Object ref = jj_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        jj_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int JJJ_FIELD_NUMBER = 34;
    private com.google.protobuf.LazyStringList jjj_;
    /**
     * <code>repeated string jjj = 34;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getJjjList() {
      return jjj_;
    }
    /**
     * <code>repeated string jjj = 34;</code>
     */
    public int getJjjCount() {
      return jjj_.size();
    }
    /**
     * <code>repeated string jjj = 34;</code>
     */
    public java.lang.String getJjj(int index) {
      return jjj_.get(index);
    }
    /**
     * <code>repeated string jjj = 34;</code>
     */
    public com.google.protobuf.ByteString
        getJjjBytes(int index) {
      return jjj_.getByteString(index);
    }

    public static final int KK_FIELD_NUMBER = 35;
    private com.zfoo.protocol.packet.ProtobufObject.ObjectA kk_;
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public boolean hasKk() {
      return kk_ != null;
    }
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk() {
      return kk_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
    }
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder() {
      return getKk();
    }

    public static final int KKK_FIELD_NUMBER = 36;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> kkk_;
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getKkkList() {
      return kkk_;
    }
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getKkkOrBuilderList() {
      return kkk_;
    }
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    public int getKkkCount() {
      return kkk_.size();
    }
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKkk(int index) {
      return kkk_.get(index);
    }
    /**
     * <code>repeated .ObjectA kkk = 36;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkkOrBuilder(
        int index) {
      return kkk_.get(index);
    }

    public static final int L_FIELD_NUMBER = 37;
    private com.google.protobuf.Internal.IntList l_;
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public java.util.List<java.lang.Integer>
        getLList() {
      return l_;
    }
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public int getLCount() {
      return l_.size();
    }
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public int getL(int index) {
      return l_.getInt(index);
    }
    private int lMemoizedSerializedSize = -1;

    public static final int LL_FIELD_NUMBER = 38;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> ll_;
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getLlList() {
      return ll_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getLlOrBuilderList() {
      return ll_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    public int getLlCount() {
      return ll_.size();
    }
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getLl(int index) {
      return ll_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ll = 38;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getLlOrBuilder(
        int index) {
      return ll_.get(index);
    }

    public static final int LLL_FIELD_NUMBER = 39;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> lll_;
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getLllList() {
      return lll_;
    }
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getLllOrBuilderList() {
      return lll_;
    }
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    public int getLllCount() {
      return lll_.size();
    }
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getLll(int index) {
      return lll_.get(index);
    }
    /**
     * <code>repeated .ListObjectA lll = 39;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getLllOrBuilder(
        int index) {
      return lll_.get(index);
    }

    public static final int LLLL_FIELD_NUMBER = 40;
    private com.google.protobuf.LazyStringList llll_;
    /**
     * <code>repeated string llll = 40;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getLlllList() {
      return llll_;
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public int getLlllCount() {
      return llll_.size();
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public java.lang.String getLlll(int index) {
      return llll_.get(index);
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public com.google.protobuf.ByteString
        getLlllBytes(int index) {
      return llll_.getByteString(index);
    }

    public static final int LLLLL_FIELD_NUMBER = 41;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> lllll_;
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getLllllList() {
      return lllll_;
    }
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getLllllOrBuilderList() {
      return lllll_;
    }
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    public int getLllllCount() {
      return lllll_.size();
    }
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getLllll(int index) {
      return lllll_.get(index);
    }
    /**
     * <code>repeated .MapIntegerString lllll = 41;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getLllllOrBuilder(
        int index) {
      return lllll_.get(index);
    }

    public static final int M_FIELD_NUMBER = 51;
    private static final class MDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.String>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_MEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.String> m_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
    internalGetM() {
      if (m_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MDefaultEntryHolder.defaultEntry);
      }
      return m_;
    }

    public int getMCount() {
      return internalGetM().getMap().size();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public boolean containsM(
        int key) {
      
      return internalGetM().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.String> getM() {
      return getMMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
      return internalGetM().getMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.lang.String getMOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MM_FIELD_NUMBER = 52;
    private static final class MmDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_MmEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> mm_;
    private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    internalGetMm() {
      if (mm_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MmDefaultEntryHolder.defaultEntry);
      }
      return mm_;
    }

    public int getMmCount() {
      return internalGetMm().getMap().size();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public boolean containsMm(
        int key) {
      
      return internalGetMm().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMmMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMm() {
      return getMmMap();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMmMap() {
      return internalGetMm().getMap();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
        int key,
        com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue) {
      
      java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
          internalGetMm().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
          internalGetMm().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MMM_FIELD_NUMBER = 53;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA> mmm_;
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA> getMmmList() {
      return mmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder> 
        getMmmOrBuilderList() {
      return mmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    public int getMmmCount() {
      return mmm_.size();
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapObjectA getMmm(int index) {
      return mmm_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapObjectA mmm = 53;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder getMmmOrBuilder(
        int index) {
      return mmm_.get(index);
    }

    public static final int MMMM_FIELD_NUMBER = 54;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> mmmm_;
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> getMmmmList() {
      return mmmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder> 
        getMmmmOrBuilderList() {
      return mmmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    public int getMmmmCount() {
      return mmmm_.size();
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getMmmm(int index) {
      return mmmm_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListListObjectA mmmm = 54;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder getMmmmOrBuilder(
        int index) {
      return mmmm_.get(index);
    }

    public static final int MMMMM_FIELD_NUMBER = 55;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> mmmmm_;
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> getMmmmmList() {
      return mmmmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder> 
        getMmmmmOrBuilderList() {
      return mmmmm_;
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    public int getMmmmmCount() {
      return mmmmm_.size();
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getMmmmm(int index) {
      return mmmmm_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapListMapInteger mmmmm = 55;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder getMmmmmOrBuilder(
        int index) {
      return mmmmm_.get(index);
    }

    public static final int S_FIELD_NUMBER = 61;
    private com.google.protobuf.Internal.IntList s_;
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    public java.util.List<java.lang.Integer>
        getSList() {
      return s_;
    }
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    public int getSCount() {
      return s_.size();
    }
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated int32 s = 61;</code>
     */
    public int getS(int index) {
      return s_.getInt(index);
    }
    private int sMemoizedSerializedSize = -1;

    public static final int SS_FIELD_NUMBER = 62;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> ss_;
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getSsList() {
      return ss_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
        getSsOrBuilderList() {
      return ss_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    public int getSsCount() {
      return ss_.size();
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getSs(int index) {
      return ss_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListListInteger ss = 62;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getSsOrBuilder(
        int index) {
      return ss_.get(index);
    }

    public static final int SSS_FIELD_NUMBER = 63;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> sss_;
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getSssList() {
      return sss_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
        getSssOrBuilderList() {
      return sss_;
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    public int getSssCount() {
      return sss_.size();
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getSss(int index) {
      return sss_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .ListObjectA sss = 63;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getSssOrBuilder(
        int index) {
      return sss_.get(index);
    }

    public static final int SSSS_FIELD_NUMBER = 64;
    private com.google.protobuf.LazyStringList ssss_;
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getSsssList() {
      return ssss_;
    }
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    public int getSsssCount() {
      return ssss_.size();
    }
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    public java.lang.String getSsss(int index) {
      return ssss_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持set，用数组代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated string ssss = 64;</code>
     */
    public com.google.protobuf.ByteString
        getSsssBytes(int index) {
      return ssss_.getByteString(index);
    }

    public static final int SSSSS_FIELD_NUMBER = 65;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> sssss_;
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getSssssList() {
      return sssss_;
    }
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
        getSssssOrBuilderList() {
      return sssss_;
    }
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    public int getSssssCount() {
      return sssss_.size();
    }
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getSssss(int index) {
      return sssss_.get(index);
    }
    /**
     * <pre>
     * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
     * </pre>
     *
     * <code>repeated .MapIntegerString sssss = 65;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getSssssOrBuilder(
        int index) {
      return sssss_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (a_ != 0) {
        output.writeInt32(1, a_);
      }
      if (aa_ != 0) {
        output.writeInt32(2, aa_);
      }
      if (!aaa_.isEmpty()) {
        output.writeBytes(3, aaa_);
      }
      if (!aaaa_.isEmpty()) {
        output.writeBytes(4, aaaa_);
      }
      if (b_ != 0) {
        output.writeInt32(5, b_);
      }
      if (bb_ != 0) {
        output.writeInt32(6, bb_);
      }
      if (!bbb_.isEmpty()) {
        output.writeBytes(7, bbb_);
      }
      if (!bbbb_.isEmpty()) {
        output.writeBytes(8, bbbb_);
      }
      if (c_ != 0) {
        output.writeInt32(9, c_);
      }
      if (cc_ != 0) {
        output.writeInt32(10, cc_);
      }
      if (getCccList().size() > 0) {
        output.writeUInt32NoTag(90);
        output.writeUInt32NoTag(cccMemoizedSerializedSize);
      }
      for (int i = 0; i < ccc_.size(); i++) {
        output.writeInt32NoTag(ccc_.getInt(i));
      }
      if (getCcccList().size() > 0) {
        output.writeUInt32NoTag(98);
        output.writeUInt32NoTag(ccccMemoizedSerializedSize);
      }
      for (int i = 0; i < cccc_.size(); i++) {
        output.writeInt32NoTag(cccc_.getInt(i));
      }
      if (d_ != 0L) {
        output.writeInt64(13, d_);
      }
      if (dd_ != 0L) {
        output.writeInt64(14, dd_);
      }
      if (getDddList().size() > 0) {
        output.writeUInt32NoTag(122);
        output.writeUInt32NoTag(dddMemoizedSerializedSize);
      }
      for (int i = 0; i < ddd_.size(); i++) {
        output.writeInt64NoTag(ddd_.getLong(i));
      }
      if (getDdddList().size() > 0) {
        output.writeUInt32NoTag(130);
        output.writeUInt32NoTag(ddddMemoizedSerializedSize);
      }
      for (int i = 0; i < dddd_.size(); i++) {
        output.writeInt64NoTag(dddd_.getLong(i));
      }
      if (e_ != 0F) {
        output.writeFloat(17, e_);
      }
      if (ee_ != 0F) {
        output.writeFloat(18, ee_);
      }
      if (getEeeList().size() > 0) {
        output.writeUInt32NoTag(154);
        output.writeUInt32NoTag(eeeMemoizedSerializedSize);
      }
      for (int i = 0; i < eee_.size(); i++) {
        output.writeFloatNoTag(eee_.getFloat(i));
      }
      if (getEeeeList().size() > 0) {
        output.writeUInt32NoTag(162);
        output.writeUInt32NoTag(eeeeMemoizedSerializedSize);
      }
      for (int i = 0; i < eeee_.size(); i++) {
        output.writeFloatNoTag(eeee_.getFloat(i));
      }
      if (f_ != 0D) {
        output.writeDouble(21, f_);
      }
      if (ff_ != 0D) {
        output.writeDouble(22, ff_);
      }
      if (getFffList().size() > 0) {
        output.writeUInt32NoTag(186);
        output.writeUInt32NoTag(fffMemoizedSerializedSize);
      }
      for (int i = 0; i < fff_.size(); i++) {
        output.writeDoubleNoTag(fff_.getDouble(i));
      }
      if (getFfffList().size() > 0) {
        output.writeUInt32NoTag(194);
        output.writeUInt32NoTag(ffffMemoizedSerializedSize);
      }
      for (int i = 0; i < ffff_.size(); i++) {
        output.writeDoubleNoTag(ffff_.getDouble(i));
      }
      if (g_ != false) {
        output.writeBool(25, g_);
      }
      if (gg_ != false) {
        output.writeBool(26, gg_);
      }
      if (getGggList().size() > 0) {
        output.writeUInt32NoTag(218);
        output.writeUInt32NoTag(gggMemoizedSerializedSize);
      }
      for (int i = 0; i < ggg_.size(); i++) {
        output.writeBoolNoTag(ggg_.getBoolean(i));
      }
      if (getGgggList().size() > 0) {
        output.writeUInt32NoTag(226);
        output.writeUInt32NoTag(ggggMemoizedSerializedSize);
      }
      for (int i = 0; i < gggg_.size(); i++) {
        output.writeBoolNoTag(gggg_.getBoolean(i));
      }
      if (!getHBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 29, h_);
      }
      if (!getHhBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 30, hh_);
      }
      for (int i = 0; i < hhh_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 31, hhh_.getRaw(i));
      }
      for (int i = 0; i < hhhh_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 32, hhhh_.getRaw(i));
      }
      if (!getJjBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 33, jj_);
      }
      for (int i = 0; i < jjj_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 34, jjj_.getRaw(i));
      }
      if (kk_ != null) {
        output.writeMessage(35, getKk());
      }
      for (int i = 0; i < kkk_.size(); i++) {
        output.writeMessage(36, kkk_.get(i));
      }
      if (getLList().size() > 0) {
        output.writeUInt32NoTag(298);
        output.writeUInt32NoTag(lMemoizedSerializedSize);
      }
      for (int i = 0; i < l_.size(); i++) {
        output.writeInt32NoTag(l_.getInt(i));
      }
      for (int i = 0; i < ll_.size(); i++) {
        output.writeMessage(38, ll_.get(i));
      }
      for (int i = 0; i < lll_.size(); i++) {
        output.writeMessage(39, lll_.get(i));
      }
      for (int i = 0; i < llll_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 40, llll_.getRaw(i));
      }
      for (int i = 0; i < lllll_.size(); i++) {
        output.writeMessage(41, lllll_.get(i));
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetM(),
          MDefaultEntryHolder.defaultEntry,
          51);
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetMm(),
          MmDefaultEntryHolder.defaultEntry,
          52);
      for (int i = 0; i < mmm_.size(); i++) {
        output.writeMessage(53, mmm_.get(i));
      }
      for (int i = 0; i < mmmm_.size(); i++) {
        output.writeMessage(54, mmmm_.get(i));
      }
      for (int i = 0; i < mmmmm_.size(); i++) {
        output.writeMessage(55, mmmmm_.get(i));
      }
      if (getSList().size() > 0) {
        output.writeUInt32NoTag(490);
        output.writeUInt32NoTag(sMemoizedSerializedSize);
      }
      for (int i = 0; i < s_.size(); i++) {
        output.writeInt32NoTag(s_.getInt(i));
      }
      for (int i = 0; i < ss_.size(); i++) {
        output.writeMessage(62, ss_.get(i));
      }
      for (int i = 0; i < sss_.size(); i++) {
        output.writeMessage(63, sss_.get(i));
      }
      for (int i = 0; i < ssss_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 64, ssss_.getRaw(i));
      }
      for (int i = 0; i < sssss_.size(); i++) {
        output.writeMessage(65, sssss_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (a_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, a_);
      }
      if (aa_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, aa_);
      }
      if (!aaa_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, aaa_);
      }
      if (!aaaa_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, aaaa_);
      }
      if (b_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, b_);
      }
      if (bb_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, bb_);
      }
      if (!bbb_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, bbb_);
      }
      if (!bbbb_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, bbbb_);
      }
      if (c_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, c_);
      }
      if (cc_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, cc_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ccc_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(ccc_.getInt(i));
        }
        size += dataSize;
        if (!getCccList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        cccMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < cccc_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(cccc_.getInt(i));
        }
        size += dataSize;
        if (!getCcccList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        ccccMemoizedSerializedSize = dataSize;
      }
      if (d_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(13, d_);
      }
      if (dd_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(14, dd_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ddd_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(ddd_.getLong(i));
        }
        size += dataSize;
        if (!getDddList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        dddMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < dddd_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(dddd_.getLong(i));
        }
        size += dataSize;
        if (!getDdddList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        ddddMemoizedSerializedSize = dataSize;
      }
      if (e_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(17, e_);
      }
      if (ee_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(18, ee_);
      }
      {
        int dataSize = 0;
        dataSize = 4 * getEeeList().size();
        size += dataSize;
        if (!getEeeList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        eeeMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        dataSize = 4 * getEeeeList().size();
        size += dataSize;
        if (!getEeeeList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        eeeeMemoizedSerializedSize = dataSize;
      }
      if (f_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(21, f_);
      }
      if (ff_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(22, ff_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getFffList().size();
        size += dataSize;
        if (!getFffList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        fffMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        dataSize = 8 * getFfffList().size();
        size += dataSize;
        if (!getFfffList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        ffffMemoizedSerializedSize = dataSize;
      }
      if (g_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(25, g_);
      }
      if (gg_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(26, gg_);
      }
      {
        int dataSize = 0;
        dataSize = 1 * getGggList().size();
        size += dataSize;
        if (!getGggList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        gggMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        dataSize = 1 * getGgggList().size();
        size += dataSize;
        if (!getGgggList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        ggggMemoizedSerializedSize = dataSize;
      }
      if (!getHBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, h_);
      }
      if (!getHhBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(30, hh_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hhh_.size(); i++) {
          dataSize += computeStringSizeNoTag(hhh_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getHhhList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hhhh_.size(); i++) {
          dataSize += computeStringSizeNoTag(hhhh_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getHhhhList().size();
      }
      if (!getJjBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, jj_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < jjj_.size(); i++) {
          dataSize += computeStringSizeNoTag(jjj_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getJjjList().size();
      }
      if (kk_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, getKk());
      }
      for (int i = 0; i < kkk_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, kkk_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < l_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(l_.getInt(i));
        }
        size += dataSize;
        if (!getLList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        lMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < ll_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, ll_.get(i));
      }
      for (int i = 0; i < lll_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, lll_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < llll_.size(); i++) {
          dataSize += computeStringSizeNoTag(llll_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getLlllList().size();
      }
      for (int i = 0; i < lllll_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, lllll_.get(i));
      }
      for (java.util.Map.Entry<java.lang.Integer, java.lang.String> entry
           : internalGetM().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
        m__ = MDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(51, m__);
      }
      for (java.util.Map.Entry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> entry
           : internalGetMm().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
        mm__ = MmDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(52, mm__);
      }
      for (int i = 0; i < mmm_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(53, mmm_.get(i));
      }
      for (int i = 0; i < mmmm_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(54, mmmm_.get(i));
      }
      for (int i = 0; i < mmmmm_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(55, mmmmm_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < s_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(s_.getInt(i));
        }
        size += dataSize;
        if (!getSList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        sMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < ss_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(62, ss_.get(i));
      }
      for (int i = 0; i < sss_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(63, sss_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ssss_.size(); i++) {
          dataSize += computeStringSizeNoTag(ssss_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getSsssList().size();
      }
      for (int i = 0; i < sssss_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(65, sssss_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject other = (com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject) obj;

      if (getA()
          != other.getA()) return false;
      if (getAa()
          != other.getAa()) return false;
      if (!getAaa()
          .equals(other.getAaa())) return false;
      if (!getAaaa()
          .equals(other.getAaaa())) return false;
      if (getB()
          != other.getB()) return false;
      if (getBb()
          != other.getBb()) return false;
      if (!getBbb()
          .equals(other.getBbb())) return false;
      if (!getBbbb()
          .equals(other.getBbbb())) return false;
      if (getC()
          != other.getC()) return false;
      if (getCc()
          != other.getCc()) return false;
      if (!getCccList()
          .equals(other.getCccList())) return false;
      if (!getCcccList()
          .equals(other.getCcccList())) return false;
      if (getD()
          != other.getD()) return false;
      if (getDd()
          != other.getDd()) return false;
      if (!getDddList()
          .equals(other.getDddList())) return false;
      if (!getDdddList()
          .equals(other.getDdddList())) return false;
      if (java.lang.Float.floatToIntBits(getE())
          != java.lang.Float.floatToIntBits(
              other.getE())) return false;
      if (java.lang.Float.floatToIntBits(getEe())
          != java.lang.Float.floatToIntBits(
              other.getEe())) return false;
      if (!getEeeList()
          .equals(other.getEeeList())) return false;
      if (!getEeeeList()
          .equals(other.getEeeeList())) return false;
      if (java.lang.Double.doubleToLongBits(getF())
          != java.lang.Double.doubleToLongBits(
              other.getF())) return false;
      if (java.lang.Double.doubleToLongBits(getFf())
          != java.lang.Double.doubleToLongBits(
              other.getFf())) return false;
      if (!getFffList()
          .equals(other.getFffList())) return false;
      if (!getFfffList()
          .equals(other.getFfffList())) return false;
      if (getG()
          != other.getG()) return false;
      if (getGg()
          != other.getGg()) return false;
      if (!getGggList()
          .equals(other.getGggList())) return false;
      if (!getGgggList()
          .equals(other.getGgggList())) return false;
      if (!getH()
          .equals(other.getH())) return false;
      if (!getHh()
          .equals(other.getHh())) return false;
      if (!getHhhList()
          .equals(other.getHhhList())) return false;
      if (!getHhhhList()
          .equals(other.getHhhhList())) return false;
      if (!getJj()
          .equals(other.getJj())) return false;
      if (!getJjjList()
          .equals(other.getJjjList())) return false;
      if (hasKk() != other.hasKk()) return false;
      if (hasKk()) {
        if (!getKk()
            .equals(other.getKk())) return false;
      }
      if (!getKkkList()
          .equals(other.getKkkList())) return false;
      if (!getLList()
          .equals(other.getLList())) return false;
      if (!getLlList()
          .equals(other.getLlList())) return false;
      if (!getLllList()
          .equals(other.getLllList())) return false;
      if (!getLlllList()
          .equals(other.getLlllList())) return false;
      if (!getLllllList()
          .equals(other.getLllllList())) return false;
      if (!internalGetM().equals(
          other.internalGetM())) return false;
      if (!internalGetMm().equals(
          other.internalGetMm())) return false;
      if (!getMmmList()
          .equals(other.getMmmList())) return false;
      if (!getMmmmList()
          .equals(other.getMmmmList())) return false;
      if (!getMmmmmList()
          .equals(other.getMmmmmList())) return false;
      if (!getSList()
          .equals(other.getSList())) return false;
      if (!getSsList()
          .equals(other.getSsList())) return false;
      if (!getSssList()
          .equals(other.getSssList())) return false;
      if (!getSsssList()
          .equals(other.getSsssList())) return false;
      if (!getSssssList()
          .equals(other.getSssssList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + A_FIELD_NUMBER;
      hash = (53 * hash) + getA();
      hash = (37 * hash) + AA_FIELD_NUMBER;
      hash = (53 * hash) + getAa();
      hash = (37 * hash) + AAA_FIELD_NUMBER;
      hash = (53 * hash) + getAaa().hashCode();
      hash = (37 * hash) + AAAA_FIELD_NUMBER;
      hash = (53 * hash) + getAaaa().hashCode();
      hash = (37 * hash) + B_FIELD_NUMBER;
      hash = (53 * hash) + getB();
      hash = (37 * hash) + BB_FIELD_NUMBER;
      hash = (53 * hash) + getBb();
      hash = (37 * hash) + BBB_FIELD_NUMBER;
      hash = (53 * hash) + getBbb().hashCode();
      hash = (37 * hash) + BBBB_FIELD_NUMBER;
      hash = (53 * hash) + getBbbb().hashCode();
      hash = (37 * hash) + C_FIELD_NUMBER;
      hash = (53 * hash) + getC();
      hash = (37 * hash) + CC_FIELD_NUMBER;
      hash = (53 * hash) + getCc();
      if (getCccCount() > 0) {
        hash = (37 * hash) + CCC_FIELD_NUMBER;
        hash = (53 * hash) + getCccList().hashCode();
      }
      if (getCcccCount() > 0) {
        hash = (37 * hash) + CCCC_FIELD_NUMBER;
        hash = (53 * hash) + getCcccList().hashCode();
      }
      hash = (37 * hash) + D_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getD());
      hash = (37 * hash) + DD_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getDd());
      if (getDddCount() > 0) {
        hash = (37 * hash) + DDD_FIELD_NUMBER;
        hash = (53 * hash) + getDddList().hashCode();
      }
      if (getDdddCount() > 0) {
        hash = (37 * hash) + DDDD_FIELD_NUMBER;
        hash = (53 * hash) + getDdddList().hashCode();
      }
      hash = (37 * hash) + E_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getE());
      hash = (37 * hash) + EE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getEe());
      if (getEeeCount() > 0) {
        hash = (37 * hash) + EEE_FIELD_NUMBER;
        hash = (53 * hash) + getEeeList().hashCode();
      }
      if (getEeeeCount() > 0) {
        hash = (37 * hash) + EEEE_FIELD_NUMBER;
        hash = (53 * hash) + getEeeeList().hashCode();
      }
      hash = (37 * hash) + F_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getF()));
      hash = (37 * hash) + FF_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getFf()));
      if (getFffCount() > 0) {
        hash = (37 * hash) + FFF_FIELD_NUMBER;
        hash = (53 * hash) + getFffList().hashCode();
      }
      if (getFfffCount() > 0) {
        hash = (37 * hash) + FFFF_FIELD_NUMBER;
        hash = (53 * hash) + getFfffList().hashCode();
      }
      hash = (37 * hash) + G_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getG());
      hash = (37 * hash) + GG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getGg());
      if (getGggCount() > 0) {
        hash = (37 * hash) + GGG_FIELD_NUMBER;
        hash = (53 * hash) + getGggList().hashCode();
      }
      if (getGgggCount() > 0) {
        hash = (37 * hash) + GGGG_FIELD_NUMBER;
        hash = (53 * hash) + getGgggList().hashCode();
      }
      hash = (37 * hash) + H_FIELD_NUMBER;
      hash = (53 * hash) + getH().hashCode();
      hash = (37 * hash) + HH_FIELD_NUMBER;
      hash = (53 * hash) + getHh().hashCode();
      if (getHhhCount() > 0) {
        hash = (37 * hash) + HHH_FIELD_NUMBER;
        hash = (53 * hash) + getHhhList().hashCode();
      }
      if (getHhhhCount() > 0) {
        hash = (37 * hash) + HHHH_FIELD_NUMBER;
        hash = (53 * hash) + getHhhhList().hashCode();
      }
      hash = (37 * hash) + JJ_FIELD_NUMBER;
      hash = (53 * hash) + getJj().hashCode();
      if (getJjjCount() > 0) {
        hash = (37 * hash) + JJJ_FIELD_NUMBER;
        hash = (53 * hash) + getJjjList().hashCode();
      }
      if (hasKk()) {
        hash = (37 * hash) + KK_FIELD_NUMBER;
        hash = (53 * hash) + getKk().hashCode();
      }
      if (getKkkCount() > 0) {
        hash = (37 * hash) + KKK_FIELD_NUMBER;
        hash = (53 * hash) + getKkkList().hashCode();
      }
      if (getLCount() > 0) {
        hash = (37 * hash) + L_FIELD_NUMBER;
        hash = (53 * hash) + getLList().hashCode();
      }
      if (getLlCount() > 0) {
        hash = (37 * hash) + LL_FIELD_NUMBER;
        hash = (53 * hash) + getLlList().hashCode();
      }
      if (getLllCount() > 0) {
        hash = (37 * hash) + LLL_FIELD_NUMBER;
        hash = (53 * hash) + getLllList().hashCode();
      }
      if (getLlllCount() > 0) {
        hash = (37 * hash) + LLLL_FIELD_NUMBER;
        hash = (53 * hash) + getLlllList().hashCode();
      }
      if (getLllllCount() > 0) {
        hash = (37 * hash) + LLLLL_FIELD_NUMBER;
        hash = (53 * hash) + getLllllList().hashCode();
      }
      if (!internalGetM().getMap().isEmpty()) {
        hash = (37 * hash) + M_FIELD_NUMBER;
        hash = (53 * hash) + internalGetM().hashCode();
      }
      if (!internalGetMm().getMap().isEmpty()) {
        hash = (37 * hash) + MM_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMm().hashCode();
      }
      if (getMmmCount() > 0) {
        hash = (37 * hash) + MMM_FIELD_NUMBER;
        hash = (53 * hash) + getMmmList().hashCode();
      }
      if (getMmmmCount() > 0) {
        hash = (37 * hash) + MMMM_FIELD_NUMBER;
        hash = (53 * hash) + getMmmmList().hashCode();
      }
      if (getMmmmmCount() > 0) {
        hash = (37 * hash) + MMMMM_FIELD_NUMBER;
        hash = (53 * hash) + getMmmmmList().hashCode();
      }
      if (getSCount() > 0) {
        hash = (37 * hash) + S_FIELD_NUMBER;
        hash = (53 * hash) + getSList().hashCode();
      }
      if (getSsCount() > 0) {
        hash = (37 * hash) + SS_FIELD_NUMBER;
        hash = (53 * hash) + getSsList().hashCode();
      }
      if (getSssCount() > 0) {
        hash = (37 * hash) + SSS_FIELD_NUMBER;
        hash = (53 * hash) + getSssList().hashCode();
      }
      if (getSsssCount() > 0) {
        hash = (37 * hash) + SSSS_FIELD_NUMBER;
        hash = (53 * hash) + getSsssList().hashCode();
      }
      if (getSssssCount() > 0) {
        hash = (37 * hash) + SSSSS_FIELD_NUMBER;
        hash = (53 * hash) + getSssssList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ProtobufComplexObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ProtobufComplexObject)
        com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 51:
            return internalGetM();
          case 52:
            return internalGetMm();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 51:
            return internalGetMutableM();
          case 52:
            return internalGetMutableMm();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKkkFieldBuilder();
          getLlFieldBuilder();
          getLllFieldBuilder();
          getLllllFieldBuilder();
          getMmmFieldBuilder();
          getMmmmFieldBuilder();
          getMmmmmFieldBuilder();
          getSsFieldBuilder();
          getSssFieldBuilder();
          getSssssFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        a_ = 0;

        aa_ = 0;

        aaa_ = com.google.protobuf.ByteString.EMPTY;

        aaaa_ = com.google.protobuf.ByteString.EMPTY;

        b_ = 0;

        bb_ = 0;

        bbb_ = com.google.protobuf.ByteString.EMPTY;

        bbbb_ = com.google.protobuf.ByteString.EMPTY;

        c_ = 0;

        cc_ = 0;

        ccc_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        cccc_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        d_ = 0L;

        dd_ = 0L;

        ddd_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000004);
        dddd_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000008);
        e_ = 0F;

        ee_ = 0F;

        eee_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000010);
        eeee_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000020);
        f_ = 0D;

        ff_ = 0D;

        fff_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000040);
        ffff_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000080);
        g_ = false;

        gg_ = false;

        ggg_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000100);
        gggg_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000200);
        h_ = "";

        hh_ = "";

        hhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000400);
        hhhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000800);
        jj_ = "";

        jjj_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00001000);
        if (kkBuilder_ == null) {
          kk_ = null;
        } else {
          kk_ = null;
          kkBuilder_ = null;
        }
        if (kkkBuilder_ == null) {
          kkk_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
        } else {
          kkkBuilder_.clear();
        }
        l_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00004000);
        if (llBuilder_ == null) {
          ll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00008000);
        } else {
          llBuilder_.clear();
        }
        if (lllBuilder_ == null) {
          lll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00010000);
        } else {
          lllBuilder_.clear();
        }
        llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00020000);
        if (lllllBuilder_ == null) {
          lllll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00040000);
        } else {
          lllllBuilder_.clear();
        }
        internalGetMutableM().clear();
        internalGetMutableMm().clear();
        if (mmmBuilder_ == null) {
          mmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00200000);
        } else {
          mmmBuilder_.clear();
        }
        if (mmmmBuilder_ == null) {
          mmmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00400000);
        } else {
          mmmmBuilder_.clear();
        }
        if (mmmmmBuilder_ == null) {
          mmmmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00800000);
        } else {
          mmmmmBuilder_.clear();
        }
        s_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x01000000);
        if (ssBuilder_ == null) {
          ss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
        } else {
          ssBuilder_.clear();
        }
        if (sssBuilder_ == null) {
          sss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x04000000);
        } else {
          sssBuilder_.clear();
        }
        ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x08000000);
        if (sssssBuilder_ == null) {
          sssss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x10000000);
        } else {
          sssssBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufComplexObject_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject build() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject result = new com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject(this);
        int from_bitField0_ = bitField0_;
        result.a_ = a_;
        result.aa_ = aa_;
        result.aaa_ = aaa_;
        result.aaaa_ = aaaa_;
        result.b_ = b_;
        result.bb_ = bb_;
        result.bbb_ = bbb_;
        result.bbbb_ = bbbb_;
        result.c_ = c_;
        result.cc_ = cc_;
        if (((bitField0_ & 0x00000001) != 0)) {
          ccc_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.ccc_ = ccc_;
        if (((bitField0_ & 0x00000002) != 0)) {
          cccc_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.cccc_ = cccc_;
        result.d_ = d_;
        result.dd_ = dd_;
        if (((bitField0_ & 0x00000004) != 0)) {
          ddd_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.ddd_ = ddd_;
        if (((bitField0_ & 0x00000008) != 0)) {
          dddd_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.dddd_ = dddd_;
        result.e_ = e_;
        result.ee_ = ee_;
        if (((bitField0_ & 0x00000010) != 0)) {
          eee_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.eee_ = eee_;
        if (((bitField0_ & 0x00000020) != 0)) {
          eeee_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.eeee_ = eeee_;
        result.f_ = f_;
        result.ff_ = ff_;
        if (((bitField0_ & 0x00000040) != 0)) {
          fff_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.fff_ = fff_;
        if (((bitField0_ & 0x00000080) != 0)) {
          ffff_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.ffff_ = ffff_;
        result.g_ = g_;
        result.gg_ = gg_;
        if (((bitField0_ & 0x00000100) != 0)) {
          ggg_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.ggg_ = ggg_;
        if (((bitField0_ & 0x00000200) != 0)) {
          gggg_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000200);
        }
        result.gggg_ = gggg_;
        result.h_ = h_;
        result.hh_ = hh_;
        if (((bitField0_ & 0x00000400) != 0)) {
          hhh_ = hhh_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000400);
        }
        result.hhh_ = hhh_;
        if (((bitField0_ & 0x00000800) != 0)) {
          hhhh_ = hhhh_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000800);
        }
        result.hhhh_ = hhhh_;
        result.jj_ = jj_;
        if (((bitField0_ & 0x00001000) != 0)) {
          jjj_ = jjj_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00001000);
        }
        result.jjj_ = jjj_;
        if (kkBuilder_ == null) {
          result.kk_ = kk_;
        } else {
          result.kk_ = kkBuilder_.build();
        }
        if (kkkBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0)) {
            kkk_ = java.util.Collections.unmodifiableList(kkk_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.kkk_ = kkk_;
        } else {
          result.kkk_ = kkkBuilder_.build();
        }
        if (((bitField0_ & 0x00004000) != 0)) {
          l_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00004000);
        }
        result.l_ = l_;
        if (llBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0)) {
            ll_ = java.util.Collections.unmodifiableList(ll_);
            bitField0_ = (bitField0_ & ~0x00008000);
          }
          result.ll_ = ll_;
        } else {
          result.ll_ = llBuilder_.build();
        }
        if (lllBuilder_ == null) {
          if (((bitField0_ & 0x00010000) != 0)) {
            lll_ = java.util.Collections.unmodifiableList(lll_);
            bitField0_ = (bitField0_ & ~0x00010000);
          }
          result.lll_ = lll_;
        } else {
          result.lll_ = lllBuilder_.build();
        }
        if (((bitField0_ & 0x00020000) != 0)) {
          llll_ = llll_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00020000);
        }
        result.llll_ = llll_;
        if (lllllBuilder_ == null) {
          if (((bitField0_ & 0x00040000) != 0)) {
            lllll_ = java.util.Collections.unmodifiableList(lllll_);
            bitField0_ = (bitField0_ & ~0x00040000);
          }
          result.lllll_ = lllll_;
        } else {
          result.lllll_ = lllllBuilder_.build();
        }
        result.m_ = internalGetM();
        result.m_.makeImmutable();
        result.mm_ = internalGetMm();
        result.mm_.makeImmutable();
        if (mmmBuilder_ == null) {
          if (((bitField0_ & 0x00200000) != 0)) {
            mmm_ = java.util.Collections.unmodifiableList(mmm_);
            bitField0_ = (bitField0_ & ~0x00200000);
          }
          result.mmm_ = mmm_;
        } else {
          result.mmm_ = mmmBuilder_.build();
        }
        if (mmmmBuilder_ == null) {
          if (((bitField0_ & 0x00400000) != 0)) {
            mmmm_ = java.util.Collections.unmodifiableList(mmmm_);
            bitField0_ = (bitField0_ & ~0x00400000);
          }
          result.mmmm_ = mmmm_;
        } else {
          result.mmmm_ = mmmmBuilder_.build();
        }
        if (mmmmmBuilder_ == null) {
          if (((bitField0_ & 0x00800000) != 0)) {
            mmmmm_ = java.util.Collections.unmodifiableList(mmmmm_);
            bitField0_ = (bitField0_ & ~0x00800000);
          }
          result.mmmmm_ = mmmmm_;
        } else {
          result.mmmmm_ = mmmmmBuilder_.build();
        }
        if (((bitField0_ & 0x01000000) != 0)) {
          s_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x01000000);
        }
        result.s_ = s_;
        if (ssBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0)) {
            ss_ = java.util.Collections.unmodifiableList(ss_);
            bitField0_ = (bitField0_ & ~0x02000000);
          }
          result.ss_ = ss_;
        } else {
          result.ss_ = ssBuilder_.build();
        }
        if (sssBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0)) {
            sss_ = java.util.Collections.unmodifiableList(sss_);
            bitField0_ = (bitField0_ & ~0x04000000);
          }
          result.sss_ = sss_;
        } else {
          result.sss_ = sssBuilder_.build();
        }
        if (((bitField0_ & 0x08000000) != 0)) {
          ssss_ = ssss_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x08000000);
        }
        result.ssss_ = ssss_;
        if (sssssBuilder_ == null) {
          if (((bitField0_ & 0x10000000) != 0)) {
            sssss_ = java.util.Collections.unmodifiableList(sssss_);
            bitField0_ = (bitField0_ & ~0x10000000);
          }
          result.sssss_ = sssss_;
        } else {
          result.sssss_ = sssssBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject.getDefaultInstance()) return this;
        if (other.getA() != 0) {
          setA(other.getA());
        }
        if (other.getAa() != 0) {
          setAa(other.getAa());
        }
        if (other.getAaa() != com.google.protobuf.ByteString.EMPTY) {
          setAaa(other.getAaa());
        }
        if (other.getAaaa() != com.google.protobuf.ByteString.EMPTY) {
          setAaaa(other.getAaaa());
        }
        if (other.getB() != 0) {
          setB(other.getB());
        }
        if (other.getBb() != 0) {
          setBb(other.getBb());
        }
        if (other.getBbb() != com.google.protobuf.ByteString.EMPTY) {
          setBbb(other.getBbb());
        }
        if (other.getBbbb() != com.google.protobuf.ByteString.EMPTY) {
          setBbbb(other.getBbbb());
        }
        if (other.getC() != 0) {
          setC(other.getC());
        }
        if (other.getCc() != 0) {
          setCc(other.getCc());
        }
        if (!other.ccc_.isEmpty()) {
          if (ccc_.isEmpty()) {
            ccc_ = other.ccc_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureCccIsMutable();
            ccc_.addAll(other.ccc_);
          }
          onChanged();
        }
        if (!other.cccc_.isEmpty()) {
          if (cccc_.isEmpty()) {
            cccc_ = other.cccc_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureCcccIsMutable();
            cccc_.addAll(other.cccc_);
          }
          onChanged();
        }
        if (other.getD() != 0L) {
          setD(other.getD());
        }
        if (other.getDd() != 0L) {
          setDd(other.getDd());
        }
        if (!other.ddd_.isEmpty()) {
          if (ddd_.isEmpty()) {
            ddd_ = other.ddd_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureDddIsMutable();
            ddd_.addAll(other.ddd_);
          }
          onChanged();
        }
        if (!other.dddd_.isEmpty()) {
          if (dddd_.isEmpty()) {
            dddd_ = other.dddd_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureDdddIsMutable();
            dddd_.addAll(other.dddd_);
          }
          onChanged();
        }
        if (other.getE() != 0F) {
          setE(other.getE());
        }
        if (other.getEe() != 0F) {
          setEe(other.getEe());
        }
        if (!other.eee_.isEmpty()) {
          if (eee_.isEmpty()) {
            eee_ = other.eee_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureEeeIsMutable();
            eee_.addAll(other.eee_);
          }
          onChanged();
        }
        if (!other.eeee_.isEmpty()) {
          if (eeee_.isEmpty()) {
            eeee_ = other.eeee_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureEeeeIsMutable();
            eeee_.addAll(other.eeee_);
          }
          onChanged();
        }
        if (other.getF() != 0D) {
          setF(other.getF());
        }
        if (other.getFf() != 0D) {
          setFf(other.getFf());
        }
        if (!other.fff_.isEmpty()) {
          if (fff_.isEmpty()) {
            fff_ = other.fff_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureFffIsMutable();
            fff_.addAll(other.fff_);
          }
          onChanged();
        }
        if (!other.ffff_.isEmpty()) {
          if (ffff_.isEmpty()) {
            ffff_ = other.ffff_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureFfffIsMutable();
            ffff_.addAll(other.ffff_);
          }
          onChanged();
        }
        if (other.getG() != false) {
          setG(other.getG());
        }
        if (other.getGg() != false) {
          setGg(other.getGg());
        }
        if (!other.ggg_.isEmpty()) {
          if (ggg_.isEmpty()) {
            ggg_ = other.ggg_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureGggIsMutable();
            ggg_.addAll(other.ggg_);
          }
          onChanged();
        }
        if (!other.gggg_.isEmpty()) {
          if (gggg_.isEmpty()) {
            gggg_ = other.gggg_;
            bitField0_ = (bitField0_ & ~0x00000200);
          } else {
            ensureGgggIsMutable();
            gggg_.addAll(other.gggg_);
          }
          onChanged();
        }
        if (!other.getH().isEmpty()) {
          h_ = other.h_;
          onChanged();
        }
        if (!other.getHh().isEmpty()) {
          hh_ = other.hh_;
          onChanged();
        }
        if (!other.hhh_.isEmpty()) {
          if (hhh_.isEmpty()) {
            hhh_ = other.hhh_;
            bitField0_ = (bitField0_ & ~0x00000400);
          } else {
            ensureHhhIsMutable();
            hhh_.addAll(other.hhh_);
          }
          onChanged();
        }
        if (!other.hhhh_.isEmpty()) {
          if (hhhh_.isEmpty()) {
            hhhh_ = other.hhhh_;
            bitField0_ = (bitField0_ & ~0x00000800);
          } else {
            ensureHhhhIsMutable();
            hhhh_.addAll(other.hhhh_);
          }
          onChanged();
        }
        if (!other.getJj().isEmpty()) {
          jj_ = other.jj_;
          onChanged();
        }
        if (!other.jjj_.isEmpty()) {
          if (jjj_.isEmpty()) {
            jjj_ = other.jjj_;
            bitField0_ = (bitField0_ & ~0x00001000);
          } else {
            ensureJjjIsMutable();
            jjj_.addAll(other.jjj_);
          }
          onChanged();
        }
        if (other.hasKk()) {
          mergeKk(other.getKk());
        }
        if (kkkBuilder_ == null) {
          if (!other.kkk_.isEmpty()) {
            if (kkk_.isEmpty()) {
              kkk_ = other.kkk_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureKkkIsMutable();
              kkk_.addAll(other.kkk_);
            }
            onChanged();
          }
        } else {
          if (!other.kkk_.isEmpty()) {
            if (kkkBuilder_.isEmpty()) {
              kkkBuilder_.dispose();
              kkkBuilder_ = null;
              kkk_ = other.kkk_;
              bitField0_ = (bitField0_ & ~0x00002000);
              kkkBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKkkFieldBuilder() : null;
            } else {
              kkkBuilder_.addAllMessages(other.kkk_);
            }
          }
        }
        if (!other.l_.isEmpty()) {
          if (l_.isEmpty()) {
            l_ = other.l_;
            bitField0_ = (bitField0_ & ~0x00004000);
          } else {
            ensureLIsMutable();
            l_.addAll(other.l_);
          }
          onChanged();
        }
        if (llBuilder_ == null) {
          if (!other.ll_.isEmpty()) {
            if (ll_.isEmpty()) {
              ll_ = other.ll_;
              bitField0_ = (bitField0_ & ~0x00008000);
            } else {
              ensureLlIsMutable();
              ll_.addAll(other.ll_);
            }
            onChanged();
          }
        } else {
          if (!other.ll_.isEmpty()) {
            if (llBuilder_.isEmpty()) {
              llBuilder_.dispose();
              llBuilder_ = null;
              ll_ = other.ll_;
              bitField0_ = (bitField0_ & ~0x00008000);
              llBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLlFieldBuilder() : null;
            } else {
              llBuilder_.addAllMessages(other.ll_);
            }
          }
        }
        if (lllBuilder_ == null) {
          if (!other.lll_.isEmpty()) {
            if (lll_.isEmpty()) {
              lll_ = other.lll_;
              bitField0_ = (bitField0_ & ~0x00010000);
            } else {
              ensureLllIsMutable();
              lll_.addAll(other.lll_);
            }
            onChanged();
          }
        } else {
          if (!other.lll_.isEmpty()) {
            if (lllBuilder_.isEmpty()) {
              lllBuilder_.dispose();
              lllBuilder_ = null;
              lll_ = other.lll_;
              bitField0_ = (bitField0_ & ~0x00010000);
              lllBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLllFieldBuilder() : null;
            } else {
              lllBuilder_.addAllMessages(other.lll_);
            }
          }
        }
        if (!other.llll_.isEmpty()) {
          if (llll_.isEmpty()) {
            llll_ = other.llll_;
            bitField0_ = (bitField0_ & ~0x00020000);
          } else {
            ensureLlllIsMutable();
            llll_.addAll(other.llll_);
          }
          onChanged();
        }
        if (lllllBuilder_ == null) {
          if (!other.lllll_.isEmpty()) {
            if (lllll_.isEmpty()) {
              lllll_ = other.lllll_;
              bitField0_ = (bitField0_ & ~0x00040000);
            } else {
              ensureLllllIsMutable();
              lllll_.addAll(other.lllll_);
            }
            onChanged();
          }
        } else {
          if (!other.lllll_.isEmpty()) {
            if (lllllBuilder_.isEmpty()) {
              lllllBuilder_.dispose();
              lllllBuilder_ = null;
              lllll_ = other.lllll_;
              bitField0_ = (bitField0_ & ~0x00040000);
              lllllBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLllllFieldBuilder() : null;
            } else {
              lllllBuilder_.addAllMessages(other.lllll_);
            }
          }
        }
        internalGetMutableM().mergeFrom(
            other.internalGetM());
        internalGetMutableMm().mergeFrom(
            other.internalGetMm());
        if (mmmBuilder_ == null) {
          if (!other.mmm_.isEmpty()) {
            if (mmm_.isEmpty()) {
              mmm_ = other.mmm_;
              bitField0_ = (bitField0_ & ~0x00200000);
            } else {
              ensureMmmIsMutable();
              mmm_.addAll(other.mmm_);
            }
            onChanged();
          }
        } else {
          if (!other.mmm_.isEmpty()) {
            if (mmmBuilder_.isEmpty()) {
              mmmBuilder_.dispose();
              mmmBuilder_ = null;
              mmm_ = other.mmm_;
              bitField0_ = (bitField0_ & ~0x00200000);
              mmmBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMmmFieldBuilder() : null;
            } else {
              mmmBuilder_.addAllMessages(other.mmm_);
            }
          }
        }
        if (mmmmBuilder_ == null) {
          if (!other.mmmm_.isEmpty()) {
            if (mmmm_.isEmpty()) {
              mmmm_ = other.mmmm_;
              bitField0_ = (bitField0_ & ~0x00400000);
            } else {
              ensureMmmmIsMutable();
              mmmm_.addAll(other.mmmm_);
            }
            onChanged();
          }
        } else {
          if (!other.mmmm_.isEmpty()) {
            if (mmmmBuilder_.isEmpty()) {
              mmmmBuilder_.dispose();
              mmmmBuilder_ = null;
              mmmm_ = other.mmmm_;
              bitField0_ = (bitField0_ & ~0x00400000);
              mmmmBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMmmmFieldBuilder() : null;
            } else {
              mmmmBuilder_.addAllMessages(other.mmmm_);
            }
          }
        }
        if (mmmmmBuilder_ == null) {
          if (!other.mmmmm_.isEmpty()) {
            if (mmmmm_.isEmpty()) {
              mmmmm_ = other.mmmmm_;
              bitField0_ = (bitField0_ & ~0x00800000);
            } else {
              ensureMmmmmIsMutable();
              mmmmm_.addAll(other.mmmmm_);
            }
            onChanged();
          }
        } else {
          if (!other.mmmmm_.isEmpty()) {
            if (mmmmmBuilder_.isEmpty()) {
              mmmmmBuilder_.dispose();
              mmmmmBuilder_ = null;
              mmmmm_ = other.mmmmm_;
              bitField0_ = (bitField0_ & ~0x00800000);
              mmmmmBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMmmmmFieldBuilder() : null;
            } else {
              mmmmmBuilder_.addAllMessages(other.mmmmm_);
            }
          }
        }
        if (!other.s_.isEmpty()) {
          if (s_.isEmpty()) {
            s_ = other.s_;
            bitField0_ = (bitField0_ & ~0x01000000);
          } else {
            ensureSIsMutable();
            s_.addAll(other.s_);
          }
          onChanged();
        }
        if (ssBuilder_ == null) {
          if (!other.ss_.isEmpty()) {
            if (ss_.isEmpty()) {
              ss_ = other.ss_;
              bitField0_ = (bitField0_ & ~0x02000000);
            } else {
              ensureSsIsMutable();
              ss_.addAll(other.ss_);
            }
            onChanged();
          }
        } else {
          if (!other.ss_.isEmpty()) {
            if (ssBuilder_.isEmpty()) {
              ssBuilder_.dispose();
              ssBuilder_ = null;
              ss_ = other.ss_;
              bitField0_ = (bitField0_ & ~0x02000000);
              ssBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSsFieldBuilder() : null;
            } else {
              ssBuilder_.addAllMessages(other.ss_);
            }
          }
        }
        if (sssBuilder_ == null) {
          if (!other.sss_.isEmpty()) {
            if (sss_.isEmpty()) {
              sss_ = other.sss_;
              bitField0_ = (bitField0_ & ~0x04000000);
            } else {
              ensureSssIsMutable();
              sss_.addAll(other.sss_);
            }
            onChanged();
          }
        } else {
          if (!other.sss_.isEmpty()) {
            if (sssBuilder_.isEmpty()) {
              sssBuilder_.dispose();
              sssBuilder_ = null;
              sss_ = other.sss_;
              bitField0_ = (bitField0_ & ~0x04000000);
              sssBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSssFieldBuilder() : null;
            } else {
              sssBuilder_.addAllMessages(other.sss_);
            }
          }
        }
        if (!other.ssss_.isEmpty()) {
          if (ssss_.isEmpty()) {
            ssss_ = other.ssss_;
            bitField0_ = (bitField0_ & ~0x08000000);
          } else {
            ensureSsssIsMutable();
            ssss_.addAll(other.ssss_);
          }
          onChanged();
        }
        if (sssssBuilder_ == null) {
          if (!other.sssss_.isEmpty()) {
            if (sssss_.isEmpty()) {
              sssss_ = other.sssss_;
              bitField0_ = (bitField0_ & ~0x10000000);
            } else {
              ensureSssssIsMutable();
              sssss_.addAll(other.sssss_);
            }
            onChanged();
          }
        } else {
          if (!other.sssss_.isEmpty()) {
            if (sssssBuilder_.isEmpty()) {
              sssssBuilder_.dispose();
              sssssBuilder_ = null;
              sssss_ = other.sssss_;
              bitField0_ = (bitField0_ & ~0x10000000);
              sssssBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSssssFieldBuilder() : null;
            } else {
              sssssBuilder_.addAllMessages(other.sssss_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int a_ ;
      /**
       * <pre>
       * protobuf不支持单个byte，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 a = 1;</code>
       */
      public int getA() {
        return a_;
      }
      /**
       * <pre>
       * protobuf不支持单个byte，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 a = 1;</code>
       */
      public Builder setA(int value) {
        
        a_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持单个byte，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 a = 1;</code>
       */
      public Builder clearA() {
        
        a_ = 0;
        onChanged();
        return this;
      }

      private int aa_ ;
      /**
       * <code>int32 aa = 2;</code>
       */
      public int getAa() {
        return aa_;
      }
      /**
       * <code>int32 aa = 2;</code>
       */
      public Builder setAa(int value) {
        
        aa_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 aa = 2;</code>
       */
      public Builder clearAa() {
        
        aa_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString aaa_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes aaa = 3;</code>
       */
      public com.google.protobuf.ByteString getAaa() {
        return aaa_;
      }
      /**
       * <code>bytes aaa = 3;</code>
       */
      public Builder setAaa(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        aaa_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes aaa = 3;</code>
       */
      public Builder clearAaa() {
        
        aaa_ = getDefaultInstance().getAaa();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString aaaa_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes aaaa = 4;</code>
       */
      public com.google.protobuf.ByteString getAaaa() {
        return aaaa_;
      }
      /**
       * <code>bytes aaaa = 4;</code>
       */
      public Builder setAaaa(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        aaaa_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes aaaa = 4;</code>
       */
      public Builder clearAaaa() {
        
        aaaa_ = getDefaultInstance().getAaaa();
        onChanged();
        return this;
      }

      private int b_ ;
      /**
       * <pre>
       * protobuf不支持单个short，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 b = 5;</code>
       */
      public int getB() {
        return b_;
      }
      /**
       * <pre>
       * protobuf不支持单个short，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 b = 5;</code>
       */
      public Builder setB(int value) {
        
        b_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持单个short，用int代替，增加了一点性能开销
       * </pre>
       *
       * <code>int32 b = 5;</code>
       */
      public Builder clearB() {
        
        b_ = 0;
        onChanged();
        return this;
      }

      private int bb_ ;
      /**
       * <code>int32 bb = 6;</code>
       */
      public int getBb() {
        return bb_;
      }
      /**
       * <code>int32 bb = 6;</code>
       */
      public Builder setBb(int value) {
        
        bb_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 bb = 6;</code>
       */
      public Builder clearBb() {
        
        bb_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString bbb_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * protobuf不支持单个short，用bytes代替，减少了一点性能开销
       * </pre>
       *
       * <code>bytes bbb = 7;</code>
       */
      public com.google.protobuf.ByteString getBbb() {
        return bbb_;
      }
      /**
       * <pre>
       * protobuf不支持单个short，用bytes代替，减少了一点性能开销
       * </pre>
       *
       * <code>bytes bbb = 7;</code>
       */
      public Builder setBbb(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        bbb_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持单个short，用bytes代替，减少了一点性能开销
       * </pre>
       *
       * <code>bytes bbb = 7;</code>
       */
      public Builder clearBbb() {
        
        bbb_ = getDefaultInstance().getBbb();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString bbbb_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes bbbb = 8;</code>
       */
      public com.google.protobuf.ByteString getBbbb() {
        return bbbb_;
      }
      /**
       * <code>bytes bbbb = 8;</code>
       */
      public Builder setBbbb(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        bbbb_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes bbbb = 8;</code>
       */
      public Builder clearBbbb() {
        
        bbbb_ = getDefaultInstance().getBbbb();
        onChanged();
        return this;
      }

      private int c_ ;
      /**
       * <code>int32 c = 9;</code>
       */
      public int getC() {
        return c_;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder setC(int value) {
        
        c_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder clearC() {
        
        c_ = 0;
        onChanged();
        return this;
      }

      private int cc_ ;
      /**
       * <code>int32 cc = 10;</code>
       */
      public int getCc() {
        return cc_;
      }
      /**
       * <code>int32 cc = 10;</code>
       */
      public Builder setCc(int value) {
        
        cc_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 cc = 10;</code>
       */
      public Builder clearCc() {
        
        cc_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList ccc_ = emptyIntList();
      private void ensureCccIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          ccc_ = mutableCopy(ccc_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public java.util.List<java.lang.Integer>
          getCccList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(ccc_) : ccc_;
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public int getCccCount() {
        return ccc_.size();
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public int getCcc(int index) {
        return ccc_.getInt(index);
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public Builder setCcc(
          int index, int value) {
        ensureCccIsMutable();
        ccc_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public Builder addCcc(int value) {
        ensureCccIsMutable();
        ccc_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public Builder addAllCcc(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureCccIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ccc_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 ccc = 11;</code>
       */
      public Builder clearCcc() {
        ccc_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList cccc_ = emptyIntList();
      private void ensureCcccIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          cccc_ = mutableCopy(cccc_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public java.util.List<java.lang.Integer>
          getCcccList() {
        return ((bitField0_ & 0x00000002) != 0) ?
                 java.util.Collections.unmodifiableList(cccc_) : cccc_;
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public int getCcccCount() {
        return cccc_.size();
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public int getCccc(int index) {
        return cccc_.getInt(index);
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public Builder setCccc(
          int index, int value) {
        ensureCcccIsMutable();
        cccc_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public Builder addCccc(int value) {
        ensureCcccIsMutable();
        cccc_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public Builder addAllCccc(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureCcccIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, cccc_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 cccc = 12;</code>
       */
      public Builder clearCccc() {
        cccc_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private long d_ ;
      /**
       * <code>int64 d = 13;</code>
       */
      public long getD() {
        return d_;
      }
      /**
       * <code>int64 d = 13;</code>
       */
      public Builder setD(long value) {
        
        d_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 d = 13;</code>
       */
      public Builder clearD() {
        
        d_ = 0L;
        onChanged();
        return this;
      }

      private long dd_ ;
      /**
       * <code>int64 dd = 14;</code>
       */
      public long getDd() {
        return dd_;
      }
      /**
       * <code>int64 dd = 14;</code>
       */
      public Builder setDd(long value) {
        
        dd_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 dd = 14;</code>
       */
      public Builder clearDd() {
        
        dd_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList ddd_ = emptyLongList();
      private void ensureDddIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          ddd_ = mutableCopy(ddd_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public java.util.List<java.lang.Long>
          getDddList() {
        return ((bitField0_ & 0x00000004) != 0) ?
                 java.util.Collections.unmodifiableList(ddd_) : ddd_;
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public int getDddCount() {
        return ddd_.size();
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public long getDdd(int index) {
        return ddd_.getLong(index);
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public Builder setDdd(
          int index, long value) {
        ensureDddIsMutable();
        ddd_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public Builder addDdd(long value) {
        ensureDddIsMutable();
        ddd_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public Builder addAllDdd(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureDddIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ddd_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ddd = 15;</code>
       */
      public Builder clearDdd() {
        ddd_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList dddd_ = emptyLongList();
      private void ensureDdddIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          dddd_ = mutableCopy(dddd_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public java.util.List<java.lang.Long>
          getDdddList() {
        return ((bitField0_ & 0x00000008) != 0) ?
                 java.util.Collections.unmodifiableList(dddd_) : dddd_;
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public int getDdddCount() {
        return dddd_.size();
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public long getDddd(int index) {
        return dddd_.getLong(index);
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public Builder setDddd(
          int index, long value) {
        ensureDdddIsMutable();
        dddd_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public Builder addDddd(long value) {
        ensureDdddIsMutable();
        dddd_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public Builder addAllDddd(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureDdddIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, dddd_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 dddd = 16;</code>
       */
      public Builder clearDddd() {
        dddd_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private float e_ ;
      /**
       * <code>float e = 17;</code>
       */
      public float getE() {
        return e_;
      }
      /**
       * <code>float e = 17;</code>
       */
      public Builder setE(float value) {
        
        e_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float e = 17;</code>
       */
      public Builder clearE() {
        
        e_ = 0F;
        onChanged();
        return this;
      }

      private float ee_ ;
      /**
       * <code>float ee = 18;</code>
       */
      public float getEe() {
        return ee_;
      }
      /**
       * <code>float ee = 18;</code>
       */
      public Builder setEe(float value) {
        
        ee_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float ee = 18;</code>
       */
      public Builder clearEe() {
        
        ee_ = 0F;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.FloatList eee_ = emptyFloatList();
      private void ensureEeeIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          eee_ = mutableCopy(eee_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public java.util.List<java.lang.Float>
          getEeeList() {
        return ((bitField0_ & 0x00000010) != 0) ?
                 java.util.Collections.unmodifiableList(eee_) : eee_;
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public int getEeeCount() {
        return eee_.size();
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public float getEee(int index) {
        return eee_.getFloat(index);
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public Builder setEee(
          int index, float value) {
        ensureEeeIsMutable();
        eee_.setFloat(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public Builder addEee(float value) {
        ensureEeeIsMutable();
        eee_.addFloat(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public Builder addAllEee(
          java.lang.Iterable<? extends java.lang.Float> values) {
        ensureEeeIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, eee_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eee = 19;</code>
       */
      public Builder clearEee() {
        eee_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.FloatList eeee_ = emptyFloatList();
      private void ensureEeeeIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          eeee_ = mutableCopy(eeee_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public java.util.List<java.lang.Float>
          getEeeeList() {
        return ((bitField0_ & 0x00000020) != 0) ?
                 java.util.Collections.unmodifiableList(eeee_) : eeee_;
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public int getEeeeCount() {
        return eeee_.size();
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public float getEeee(int index) {
        return eeee_.getFloat(index);
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public Builder setEeee(
          int index, float value) {
        ensureEeeeIsMutable();
        eeee_.setFloat(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public Builder addEeee(float value) {
        ensureEeeeIsMutable();
        eeee_.addFloat(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public Builder addAllEeee(
          java.lang.Iterable<? extends java.lang.Float> values) {
        ensureEeeeIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, eeee_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated float eeee = 20;</code>
       */
      public Builder clearEeee() {
        eeee_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }

      private double f_ ;
      /**
       * <code>double f = 21;</code>
       */
      public double getF() {
        return f_;
      }
      /**
       * <code>double f = 21;</code>
       */
      public Builder setF(double value) {
        
        f_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double f = 21;</code>
       */
      public Builder clearF() {
        
        f_ = 0D;
        onChanged();
        return this;
      }

      private double ff_ ;
      /**
       * <code>double ff = 22;</code>
       */
      public double getFf() {
        return ff_;
      }
      /**
       * <code>double ff = 22;</code>
       */
      public Builder setFf(double value) {
        
        ff_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double ff = 22;</code>
       */
      public Builder clearFf() {
        
        ff_ = 0D;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList fff_ = emptyDoubleList();
      private void ensureFffIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          fff_ = mutableCopy(fff_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public java.util.List<java.lang.Double>
          getFffList() {
        return ((bitField0_ & 0x00000040) != 0) ?
                 java.util.Collections.unmodifiableList(fff_) : fff_;
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public int getFffCount() {
        return fff_.size();
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public double getFff(int index) {
        return fff_.getDouble(index);
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public Builder setFff(
          int index, double value) {
        ensureFffIsMutable();
        fff_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public Builder addFff(double value) {
        ensureFffIsMutable();
        fff_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public Builder addAllFff(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureFffIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, fff_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double fff = 23;</code>
       */
      public Builder clearFff() {
        fff_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList ffff_ = emptyDoubleList();
      private void ensureFfffIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          ffff_ = mutableCopy(ffff_);
          bitField0_ |= 0x00000080;
         }
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public java.util.List<java.lang.Double>
          getFfffList() {
        return ((bitField0_ & 0x00000080) != 0) ?
                 java.util.Collections.unmodifiableList(ffff_) : ffff_;
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public int getFfffCount() {
        return ffff_.size();
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public double getFfff(int index) {
        return ffff_.getDouble(index);
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public Builder setFfff(
          int index, double value) {
        ensureFfffIsMutable();
        ffff_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public Builder addFfff(double value) {
        ensureFfffIsMutable();
        ffff_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public Builder addAllFfff(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureFfffIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ffff_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double ffff = 24;</code>
       */
      public Builder clearFfff() {
        ffff_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }

      private boolean g_ ;
      /**
       * <code>bool g = 25;</code>
       */
      public boolean getG() {
        return g_;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder setG(boolean value) {
        
        g_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder clearG() {
        
        g_ = false;
        onChanged();
        return this;
      }

      private boolean gg_ ;
      /**
       * <code>bool gg = 26;</code>
       */
      public boolean getGg() {
        return gg_;
      }
      /**
       * <code>bool gg = 26;</code>
       */
      public Builder setGg(boolean value) {
        
        gg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool gg = 26;</code>
       */
      public Builder clearGg() {
        
        gg_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.BooleanList ggg_ = emptyBooleanList();
      private void ensureGggIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          ggg_ = mutableCopy(ggg_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public java.util.List<java.lang.Boolean>
          getGggList() {
        return ((bitField0_ & 0x00000100) != 0) ?
                 java.util.Collections.unmodifiableList(ggg_) : ggg_;
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public int getGggCount() {
        return ggg_.size();
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public boolean getGgg(int index) {
        return ggg_.getBoolean(index);
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public Builder setGgg(
          int index, boolean value) {
        ensureGggIsMutable();
        ggg_.setBoolean(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public Builder addGgg(boolean value) {
        ensureGggIsMutable();
        ggg_.addBoolean(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public Builder addAllGgg(
          java.lang.Iterable<? extends java.lang.Boolean> values) {
        ensureGggIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ggg_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool ggg = 27;</code>
       */
      public Builder clearGgg() {
        ggg_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.BooleanList gggg_ = emptyBooleanList();
      private void ensureGgggIsMutable() {
        if (!((bitField0_ & 0x00000200) != 0)) {
          gggg_ = mutableCopy(gggg_);
          bitField0_ |= 0x00000200;
         }
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public java.util.List<java.lang.Boolean>
          getGgggList() {
        return ((bitField0_ & 0x00000200) != 0) ?
                 java.util.Collections.unmodifiableList(gggg_) : gggg_;
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public int getGgggCount() {
        return gggg_.size();
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public boolean getGggg(int index) {
        return gggg_.getBoolean(index);
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public Builder setGggg(
          int index, boolean value) {
        ensureGgggIsMutable();
        gggg_.setBoolean(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public Builder addGggg(boolean value) {
        ensureGgggIsMutable();
        gggg_.addBoolean(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public Builder addAllGggg(
          java.lang.Iterable<? extends java.lang.Boolean> values) {
        ensureGgggIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, gggg_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool gggg = 28;</code>
       */
      public Builder clearGggg() {
        gggg_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }

      private java.lang.Object h_ = "";
      /**
       * <pre>
       * protobuf不支持char，用string代替，增加了一点性能开销
       * </pre>
       *
       * <code>string h = 29;</code>
       */
      public java.lang.String getH() {
        java.lang.Object ref = h_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          h_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * protobuf不支持char，用string代替，增加了一点性能开销
       * </pre>
       *
       * <code>string h = 29;</code>
       */
      public com.google.protobuf.ByteString
          getHBytes() {
        java.lang.Object ref = h_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          h_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * protobuf不支持char，用string代替，增加了一点性能开销
       * </pre>
       *
       * <code>string h = 29;</code>
       */
      public Builder setH(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        h_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持char，用string代替，增加了一点性能开销
       * </pre>
       *
       * <code>string h = 29;</code>
       */
      public Builder clearH() {
        
        h_ = getDefaultInstance().getH();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持char，用string代替，增加了一点性能开销
       * </pre>
       *
       * <code>string h = 29;</code>
       */
      public Builder setHBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        h_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hh_ = "";
      /**
       * <code>string hh = 30;</code>
       */
      public java.lang.String getHh() {
        java.lang.Object ref = hh_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hh_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string hh = 30;</code>
       */
      public com.google.protobuf.ByteString
          getHhBytes() {
        java.lang.Object ref = hh_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hh_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string hh = 30;</code>
       */
      public Builder setHh(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hh_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string hh = 30;</code>
       */
      public Builder clearHh() {
        
        hh_ = getDefaultInstance().getHh();
        onChanged();
        return this;
      }
      /**
       * <code>string hh = 30;</code>
       */
      public Builder setHhBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hh_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList hhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureHhhIsMutable() {
        if (!((bitField0_ & 0x00000400) != 0)) {
          hhh_ = new com.google.protobuf.LazyStringArrayList(hhh_);
          bitField0_ |= 0x00000400;
         }
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getHhhList() {
        return hhh_.getUnmodifiableView();
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public int getHhhCount() {
        return hhh_.size();
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public java.lang.String getHhh(int index) {
        return hhh_.get(index);
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public com.google.protobuf.ByteString
          getHhhBytes(int index) {
        return hhh_.getByteString(index);
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public Builder setHhh(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHhhIsMutable();
        hhh_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public Builder addHhh(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHhhIsMutable();
        hhh_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public Builder addAllHhh(
          java.lang.Iterable<java.lang.String> values) {
        ensureHhhIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, hhh_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public Builder clearHhh() {
        hhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhh = 31;</code>
       */
      public Builder addHhhBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureHhhIsMutable();
        hhh_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList hhhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureHhhhIsMutable() {
        if (!((bitField0_ & 0x00000800) != 0)) {
          hhhh_ = new com.google.protobuf.LazyStringArrayList(hhhh_);
          bitField0_ |= 0x00000800;
         }
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getHhhhList() {
        return hhhh_.getUnmodifiableView();
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public int getHhhhCount() {
        return hhhh_.size();
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public java.lang.String getHhhh(int index) {
        return hhhh_.get(index);
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public com.google.protobuf.ByteString
          getHhhhBytes(int index) {
        return hhhh_.getByteString(index);
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public Builder setHhhh(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHhhhIsMutable();
        hhhh_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public Builder addHhhh(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHhhhIsMutable();
        hhhh_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public Builder addAllHhhh(
          java.lang.Iterable<java.lang.String> values) {
        ensureHhhhIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, hhhh_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public Builder clearHhhh() {
        hhhh_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string hhhh = 32;</code>
       */
      public Builder addHhhhBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureHhhhIsMutable();
        hhhh_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object jj_ = "";
      /**
       * <code>string jj = 33;</code>
       */
      public java.lang.String getJj() {
        java.lang.Object ref = jj_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          jj_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string jj = 33;</code>
       */
      public com.google.protobuf.ByteString
          getJjBytes() {
        java.lang.Object ref = jj_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jj_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder setJj(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        jj_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder clearJj() {
        
        jj_ = getDefaultInstance().getJj();
        onChanged();
        return this;
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder setJjBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        jj_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList jjj_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureJjjIsMutable() {
        if (!((bitField0_ & 0x00001000) != 0)) {
          jjj_ = new com.google.protobuf.LazyStringArrayList(jjj_);
          bitField0_ |= 0x00001000;
         }
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getJjjList() {
        return jjj_.getUnmodifiableView();
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public int getJjjCount() {
        return jjj_.size();
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public java.lang.String getJjj(int index) {
        return jjj_.get(index);
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public com.google.protobuf.ByteString
          getJjjBytes(int index) {
        return jjj_.getByteString(index);
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public Builder setJjj(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJjjIsMutable();
        jjj_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public Builder addJjj(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJjjIsMutable();
        jjj_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public Builder addAllJjj(
          java.lang.Iterable<java.lang.String> values) {
        ensureJjjIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, jjj_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public Builder clearJjj() {
        jjj_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string jjj = 34;</code>
       */
      public Builder addJjjBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureJjjIsMutable();
        jjj_.add(value);
        onChanged();
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ObjectA kk_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> kkBuilder_;
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public boolean hasKk() {
        return kkBuilder_ != null || kk_ != null;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk() {
        if (kkBuilder_ == null) {
          return kk_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
        } else {
          return kkBuilder_.getMessage();
        }
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder setKk(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kk_ = value;
          onChanged();
        } else {
          kkBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder setKk(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (kkBuilder_ == null) {
          kk_ = builderForValue.build();
          onChanged();
        } else {
          kkBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder mergeKk(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkBuilder_ == null) {
          if (kk_ != null) {
            kk_ =
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.newBuilder(kk_).mergeFrom(value).buildPartial();
          } else {
            kk_ = value;
          }
          onChanged();
        } else {
          kkBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder clearKk() {
        if (kkBuilder_ == null) {
          kk_ = null;
          onChanged();
        } else {
          kk_ = null;
          kkBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getKkBuilder() {
        
        onChanged();
        return getKkFieldBuilder().getBuilder();
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder() {
        if (kkBuilder_ != null) {
          return kkBuilder_.getMessageOrBuilder();
        } else {
          return kk_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
        }
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getKkFieldBuilder() {
        if (kkBuilder_ == null) {
          kkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  getKk(),
                  getParentForChildren(),
                  isClean());
          kk_ = null;
        }
        return kkBuilder_;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> kkk_ =
        java.util.Collections.emptyList();
      private void ensureKkkIsMutable() {
        if (!((bitField0_ & 0x00002000) != 0)) {
          kkk_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>(kkk_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> kkkBuilder_;

      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getKkkList() {
        if (kkkBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kkk_);
        } else {
          return kkkBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public int getKkkCount() {
        if (kkkBuilder_ == null) {
          return kkk_.size();
        } else {
          return kkkBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKkk(int index) {
        if (kkkBuilder_ == null) {
          return kkk_.get(index);
        } else {
          return kkkBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder setKkk(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKkkIsMutable();
          kkk_.set(index, value);
          onChanged();
        } else {
          kkkBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder setKkk(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (kkkBuilder_ == null) {
          ensureKkkIsMutable();
          kkk_.set(index, builderForValue.build());
          onChanged();
        } else {
          kkkBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder addKkk(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKkkIsMutable();
          kkk_.add(value);
          onChanged();
        } else {
          kkkBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder addKkk(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKkkIsMutable();
          kkk_.add(index, value);
          onChanged();
        } else {
          kkkBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder addKkk(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (kkkBuilder_ == null) {
          ensureKkkIsMutable();
          kkk_.add(builderForValue.build());
          onChanged();
        } else {
          kkkBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder addKkk(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (kkkBuilder_ == null) {
          ensureKkkIsMutable();
          kkk_.add(index, builderForValue.build());
          onChanged();
        } else {
          kkkBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder addAllKkk(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectA> values) {
        if (kkkBuilder_ == null) {
          ensureKkkIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kkk_);
          onChanged();
        } else {
          kkkBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder clearKkk() {
        if (kkkBuilder_ == null) {
          kkk_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          kkkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public Builder removeKkk(int index) {
        if (kkkBuilder_ == null) {
          ensureKkkIsMutable();
          kkk_.remove(index);
          onChanged();
        } else {
          kkkBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getKkkBuilder(
          int index) {
        return getKkkFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkkOrBuilder(
          int index) {
        if (kkkBuilder_ == null) {
          return kkk_.get(index);  } else {
          return kkkBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
           getKkkOrBuilderList() {
        if (kkkBuilder_ != null) {
          return kkkBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kkk_);
        }
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addKkkBuilder() {
        return getKkkFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addKkkBuilder(
          int index) {
        return getKkkFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA kkk = 36;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder> 
           getKkkBuilderList() {
        return getKkkFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getKkkFieldBuilder() {
        if (kkkBuilder_ == null) {
          kkkBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  kkk_,
                  ((bitField0_ & 0x00002000) != 0),
                  getParentForChildren(),
                  isClean());
          kkk_ = null;
        }
        return kkkBuilder_;
      }

      private com.google.protobuf.Internal.IntList l_ = emptyIntList();
      private void ensureLIsMutable() {
        if (!((bitField0_ & 0x00004000) != 0)) {
          l_ = mutableCopy(l_);
          bitField0_ |= 0x00004000;
         }
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public java.util.List<java.lang.Integer>
          getLList() {
        return ((bitField0_ & 0x00004000) != 0) ?
                 java.util.Collections.unmodifiableList(l_) : l_;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public int getLCount() {
        return l_.size();
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public int getL(int index) {
        return l_.getInt(index);
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder setL(
          int index, int value) {
        ensureLIsMutable();
        l_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder addL(int value) {
        ensureLIsMutable();
        l_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder addAllL(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureLIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, l_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder clearL() {
        l_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> ll_ =
        java.util.Collections.emptyList();
      private void ensureLlIsMutable() {
        if (!((bitField0_ & 0x00008000) != 0)) {
          ll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>(ll_);
          bitField0_ |= 0x00008000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> llBuilder_;

      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getLlList() {
        if (llBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ll_);
        } else {
          return llBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public int getLlCount() {
        if (llBuilder_ == null) {
          return ll_.size();
        } else {
          return llBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getLl(int index) {
        if (llBuilder_ == null) {
          return ll_.get(index);
        } else {
          return llBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder setLl(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (llBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLlIsMutable();
          ll_.set(index, value);
          onChanged();
        } else {
          llBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder setLl(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (llBuilder_ == null) {
          ensureLlIsMutable();
          ll_.set(index, builderForValue.build());
          onChanged();
        } else {
          llBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder addLl(com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (llBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLlIsMutable();
          ll_.add(value);
          onChanged();
        } else {
          llBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder addLl(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (llBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLlIsMutable();
          ll_.add(index, value);
          onChanged();
        } else {
          llBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder addLl(
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (llBuilder_ == null) {
          ensureLlIsMutable();
          ll_.add(builderForValue.build());
          onChanged();
        } else {
          llBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder addLl(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (llBuilder_ == null) {
          ensureLlIsMutable();
          ll_.add(index, builderForValue.build());
          onChanged();
        } else {
          llBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder addAllLl(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListListInteger> values) {
        if (llBuilder_ == null) {
          ensureLlIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, ll_);
          onChanged();
        } else {
          llBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder clearLl() {
        if (llBuilder_ == null) {
          ll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00008000);
          onChanged();
        } else {
          llBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public Builder removeLl(int index) {
        if (llBuilder_ == null) {
          ensureLlIsMutable();
          ll_.remove(index);
          onChanged();
        } else {
          llBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder getLlBuilder(
          int index) {
        return getLlFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getLlOrBuilder(
          int index) {
        if (llBuilder_ == null) {
          return ll_.get(index);  } else {
          return llBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
           getLlOrBuilderList() {
        if (llBuilder_ != null) {
          return llBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ll_);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addLlBuilder() {
        return getLlFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addLlBuilder(
          int index) {
        return getLlFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套repeated，用消息代替，减少了一点性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ll = 38;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder> 
           getLlBuilderList() {
        return getLlFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
          getLlFieldBuilder() {
        if (llBuilder_ == null) {
          llBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder>(
                  ll_,
                  ((bitField0_ & 0x00008000) != 0),
                  getParentForChildren(),
                  isClean());
          ll_ = null;
        }
        return llBuilder_;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> lll_ =
        java.util.Collections.emptyList();
      private void ensureLllIsMutable() {
        if (!((bitField0_ & 0x00010000) != 0)) {
          lll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>(lll_);
          bitField0_ |= 0x00010000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> lllBuilder_;

      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getLllList() {
        if (lllBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lll_);
        } else {
          return lllBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public int getLllCount() {
        if (lllBuilder_ == null) {
          return lll_.size();
        } else {
          return lllBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getLll(int index) {
        if (lllBuilder_ == null) {
          return lll_.get(index);
        } else {
          return lllBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder setLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.set(index, value);
          onChanged();
        } else {
          lllBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder setLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.set(index, builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder addLll(com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.add(value);
          onChanged();
        } else {
          lllBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder addLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.add(index, value);
          onChanged();
        } else {
          lllBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder addLll(
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.add(builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder addLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.add(index, builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder addAllLll(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectA> values) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lll_);
          onChanged();
        } else {
          lllBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder clearLll() {
        if (lllBuilder_ == null) {
          lll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00010000);
          onChanged();
        } else {
          lllBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public Builder removeLll(int index) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.remove(index);
          onChanged();
        } else {
          lllBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder getLllBuilder(
          int index) {
        return getLllFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getLllOrBuilder(
          int index) {
        if (lllBuilder_ == null) {
          return lll_.get(index);  } else {
          return lllBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
           getLllOrBuilderList() {
        if (lllBuilder_ != null) {
          return lllBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lll_);
        }
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addLllBuilder() {
        return getLllFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addLllBuilder(
          int index) {
        return getLllFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ListObjectA lll = 39;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder> 
           getLllBuilderList() {
        return getLllFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
          getLllFieldBuilder() {
        if (lllBuilder_ == null) {
          lllBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder>(
                  lll_,
                  ((bitField0_ & 0x00010000) != 0),
                  getParentForChildren(),
                  isClean());
          lll_ = null;
        }
        return lllBuilder_;
      }

      private com.google.protobuf.LazyStringList llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureLlllIsMutable() {
        if (!((bitField0_ & 0x00020000) != 0)) {
          llll_ = new com.google.protobuf.LazyStringArrayList(llll_);
          bitField0_ |= 0x00020000;
         }
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getLlllList() {
        return llll_.getUnmodifiableView();
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public int getLlllCount() {
        return llll_.size();
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public java.lang.String getLlll(int index) {
        return llll_.get(index);
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public com.google.protobuf.ByteString
          getLlllBytes(int index) {
        return llll_.getByteString(index);
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder setLlll(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLlllIsMutable();
        llll_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addLlll(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLlllIsMutable();
        llll_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addAllLlll(
          java.lang.Iterable<java.lang.String> values) {
        ensureLlllIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, llll_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder clearLlll() {
        llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00020000);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addLlllBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureLlllIsMutable();
        llll_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> lllll_ =
        java.util.Collections.emptyList();
      private void ensureLllllIsMutable() {
        if (!((bitField0_ & 0x00040000) != 0)) {
          lllll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>(lllll_);
          bitField0_ |= 0x00040000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> lllllBuilder_;

      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getLllllList() {
        if (lllllBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lllll_);
        } else {
          return lllllBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public int getLllllCount() {
        if (lllllBuilder_ == null) {
          return lllll_.size();
        } else {
          return lllllBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getLllll(int index) {
        if (lllllBuilder_ == null) {
          return lllll_.get(index);
        } else {
          return lllllBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder setLllll(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (lllllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllllIsMutable();
          lllll_.set(index, value);
          onChanged();
        } else {
          lllllBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder setLllll(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (lllllBuilder_ == null) {
          ensureLllllIsMutable();
          lllll_.set(index, builderForValue.build());
          onChanged();
        } else {
          lllllBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder addLllll(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (lllllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllllIsMutable();
          lllll_.add(value);
          onChanged();
        } else {
          lllllBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder addLllll(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (lllllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllllIsMutable();
          lllll_.add(index, value);
          onChanged();
        } else {
          lllllBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder addLllll(
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (lllllBuilder_ == null) {
          ensureLllllIsMutable();
          lllll_.add(builderForValue.build());
          onChanged();
        } else {
          lllllBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder addLllll(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (lllllBuilder_ == null) {
          ensureLllllIsMutable();
          lllll_.add(index, builderForValue.build());
          onChanged();
        } else {
          lllllBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder addAllLllll(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> values) {
        if (lllllBuilder_ == null) {
          ensureLllllIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lllll_);
          onChanged();
        } else {
          lllllBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder clearLllll() {
        if (lllllBuilder_ == null) {
          lllll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00040000);
          onChanged();
        } else {
          lllllBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public Builder removeLllll(int index) {
        if (lllllBuilder_ == null) {
          ensureLllllIsMutable();
          lllll_.remove(index);
          onChanged();
        } else {
          lllllBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder getLllllBuilder(
          int index) {
        return getLllllFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getLllllOrBuilder(
          int index) {
        if (lllllBuilder_ == null) {
          return lllll_.get(index);  } else {
          return lllllBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
           getLllllOrBuilderList() {
        if (lllllBuilder_ != null) {
          return lllllBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lllll_);
        }
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addLllllBuilder() {
        return getLllllFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addLllllBuilder(
          int index) {
        return getLllllFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <code>repeated .MapIntegerString lllll = 41;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder> 
           getLllllBuilderList() {
        return getLllllFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
          getLllllFieldBuilder() {
        if (lllllBuilder_ == null) {
          lllllBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder>(
                  lllll_,
                  ((bitField0_ & 0x00040000) != 0),
                  getParentForChildren(),
                  isClean());
          lllll_ = null;
        }
        return lllllBuilder_;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.String> m_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetM() {
        if (m_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        return m_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetMutableM() {
        onChanged();;
        if (m_ == null) {
          m_ = com.google.protobuf.MapField.newMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        if (!m_.isMutable()) {
          m_ = m_.copy();
        }
        return m_;
      }

      public int getMCount() {
        return internalGetM().getMap().size();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public boolean containsM(
          int key) {
        
        return internalGetM().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String> getM() {
        return getMMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
        return internalGetM().getMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.lang.String getMOrDefault(
          int key,
          java.lang.String defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.lang.String getMOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearM() {
        internalGetMutableM().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public Builder removeM(
          int key) {
        
        internalGetMutableM().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String>
      getMutableM() {
        return internalGetMutableM().getMutableMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */
      public Builder putM(
          int key,
          java.lang.String value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableM().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public Builder putAllM(
          java.util.Map<java.lang.Integer, java.lang.String> values) {
        internalGetMutableM().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> mm_;
      private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      internalGetMm() {
        if (mm_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MmDefaultEntryHolder.defaultEntry);
        }
        return mm_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      internalGetMutableMm() {
        onChanged();;
        if (mm_ == null) {
          mm_ = com.google.protobuf.MapField.newMapField(
              MmDefaultEntryHolder.defaultEntry);
        }
        if (!mm_.isMutable()) {
          mm_ = mm_.copy();
        }
        return mm_;
      }

      public int getMmCount() {
        return internalGetMm().getMap().size();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public boolean containsMm(
          int key) {
        
        return internalGetMm().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMmMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMm() {
        return getMmMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMmMap() {
        return internalGetMm().getMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
          int key,
          com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue) {
        
        java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
            internalGetMm().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
            internalGetMm().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMm() {
        internalGetMutableMm().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public Builder removeMm(
          int key) {
        
        internalGetMutableMm().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      getMutableMm() {
        return internalGetMutableMm().getMutableMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */
      public Builder putMm(
          int key,
          com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMm().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public Builder putAllMm(
          java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> values) {
        internalGetMutableMm().getMutableMap()
            .putAll(values);
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA> mmm_ =
        java.util.Collections.emptyList();
      private void ensureMmmIsMutable() {
        if (!((bitField0_ & 0x00200000) != 0)) {
          mmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapObjectA>(mmm_);
          bitField0_ |= 0x00200000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapObjectA, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder> mmmBuilder_;

      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA> getMmmList() {
        if (mmmBuilder_ == null) {
          return java.util.Collections.unmodifiableList(mmm_);
        } else {
          return mmmBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public int getMmmCount() {
        if (mmmBuilder_ == null) {
          return mmm_.size();
        } else {
          return mmmBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA getMmm(int index) {
        if (mmmBuilder_ == null) {
          return mmm_.get(index);
        } else {
          return mmmBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder setMmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapObjectA value) {
        if (mmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmIsMutable();
          mmm_.set(index, value);
          onChanged();
        } else {
          mmmBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder setMmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder builderForValue) {
        if (mmmBuilder_ == null) {
          ensureMmmIsMutable();
          mmm_.set(index, builderForValue.build());
          onChanged();
        } else {
          mmmBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder addMmm(com.zfoo.protocol.packet.ProtobufObject.MapObjectA value) {
        if (mmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmIsMutable();
          mmm_.add(value);
          onChanged();
        } else {
          mmmBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder addMmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapObjectA value) {
        if (mmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmIsMutable();
          mmm_.add(index, value);
          onChanged();
        } else {
          mmmBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder addMmm(
          com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder builderForValue) {
        if (mmmBuilder_ == null) {
          ensureMmmIsMutable();
          mmm_.add(builderForValue.build());
          onChanged();
        } else {
          mmmBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder addMmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder builderForValue) {
        if (mmmBuilder_ == null) {
          ensureMmmIsMutable();
          mmm_.add(index, builderForValue.build());
          onChanged();
        } else {
          mmmBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder addAllMmm(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapObjectA> values) {
        if (mmmBuilder_ == null) {
          ensureMmmIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, mmm_);
          onChanged();
        } else {
          mmmBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder clearMmm() {
        if (mmmBuilder_ == null) {
          mmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00200000);
          onChanged();
        } else {
          mmmBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public Builder removeMmm(int index) {
        if (mmmBuilder_ == null) {
          ensureMmmIsMutable();
          mmm_.remove(index);
          onChanged();
        } else {
          mmmBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder getMmmBuilder(
          int index) {
        return getMmmFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder getMmmOrBuilder(
          int index) {
        if (mmmBuilder_ == null) {
          return mmm_.get(index);  } else {
          return mmmBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder> 
           getMmmOrBuilderList() {
        if (mmmBuilder_ != null) {
          return mmmBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(mmm_);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder addMmmBuilder() {
        return getMmmFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder addMmmBuilder(
          int index) {
        return getMmmFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapObjectA mmm = 53;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder> 
           getMmmBuilderList() {
        return getMmmFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapObjectA, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder> 
          getMmmFieldBuilder() {
        if (mmmBuilder_ == null) {
          mmmBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapObjectA, com.zfoo.protocol.packet.ProtobufObject.MapObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapObjectAOrBuilder>(
                  mmm_,
                  ((bitField0_ & 0x00200000) != 0),
                  getParentForChildren(),
                  isClean());
          mmm_ = null;
        }
        return mmmBuilder_;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> mmmm_ =
        java.util.Collections.emptyList();
      private void ensureMmmmIsMutable() {
        if (!((bitField0_ & 0x00400000) != 0)) {
          mmmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA>(mmmm_);
          bitField0_ |= 0x00400000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder> mmmmBuilder_;

      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> getMmmmList() {
        if (mmmmBuilder_ == null) {
          return java.util.Collections.unmodifiableList(mmmm_);
        } else {
          return mmmmBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public int getMmmmCount() {
        if (mmmmBuilder_ == null) {
          return mmmm_.size();
        } else {
          return mmmmBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA getMmmm(int index) {
        if (mmmmBuilder_ == null) {
          return mmmm_.get(index);
        } else {
          return mmmmBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder setMmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA value) {
        if (mmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmIsMutable();
          mmmm_.set(index, value);
          onChanged();
        } else {
          mmmmBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder setMmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder builderForValue) {
        if (mmmmBuilder_ == null) {
          ensureMmmmIsMutable();
          mmmm_.set(index, builderForValue.build());
          onChanged();
        } else {
          mmmmBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder addMmmm(com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA value) {
        if (mmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmIsMutable();
          mmmm_.add(value);
          onChanged();
        } else {
          mmmmBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder addMmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA value) {
        if (mmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmIsMutable();
          mmmm_.add(index, value);
          onChanged();
        } else {
          mmmmBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder addMmmm(
          com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder builderForValue) {
        if (mmmmBuilder_ == null) {
          ensureMmmmIsMutable();
          mmmm_.add(builderForValue.build());
          onChanged();
        } else {
          mmmmBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder addMmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder builderForValue) {
        if (mmmmBuilder_ == null) {
          ensureMmmmIsMutable();
          mmmm_.add(index, builderForValue.build());
          onChanged();
        } else {
          mmmmBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder addAllMmmm(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA> values) {
        if (mmmmBuilder_ == null) {
          ensureMmmmIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, mmmm_);
          onChanged();
        } else {
          mmmmBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder clearMmmm() {
        if (mmmmBuilder_ == null) {
          mmmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00400000);
          onChanged();
        } else {
          mmmmBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public Builder removeMmmm(int index) {
        if (mmmmBuilder_ == null) {
          ensureMmmmIsMutable();
          mmmm_.remove(index);
          onChanged();
        } else {
          mmmmBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder getMmmmBuilder(
          int index) {
        return getMmmmFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder getMmmmOrBuilder(
          int index) {
        if (mmmmBuilder_ == null) {
          return mmmm_.get(index);  } else {
          return mmmmBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder> 
           getMmmmOrBuilderList() {
        if (mmmmBuilder_ != null) {
          return mmmmBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(mmmm_);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder addMmmmBuilder() {
        return getMmmmFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder addMmmmBuilder(
          int index) {
        return getMmmmFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListListObjectA mmmm = 54;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder> 
           getMmmmBuilderList() {
        return getMmmmFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder> 
          getMmmmFieldBuilder() {
        if (mmmmBuilder_ == null) {
          mmmmBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListListObjectAOrBuilder>(
                  mmmm_,
                  ((bitField0_ & 0x00400000) != 0),
                  getParentForChildren(),
                  isClean());
          mmmm_ = null;
        }
        return mmmmBuilder_;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> mmmmm_ =
        java.util.Collections.emptyList();
      private void ensureMmmmmIsMutable() {
        if (!((bitField0_ & 0x00800000) != 0)) {
          mmmmm_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger>(mmmmm_);
          bitField0_ |= 0x00800000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder> mmmmmBuilder_;

      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> getMmmmmList() {
        if (mmmmmBuilder_ == null) {
          return java.util.Collections.unmodifiableList(mmmmm_);
        } else {
          return mmmmmBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public int getMmmmmCount() {
        if (mmmmmBuilder_ == null) {
          return mmmmm_.size();
        } else {
          return mmmmmBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger getMmmmm(int index) {
        if (mmmmmBuilder_ == null) {
          return mmmmm_.get(index);
        } else {
          return mmmmmBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder setMmmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger value) {
        if (mmmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmmIsMutable();
          mmmmm_.set(index, value);
          onChanged();
        } else {
          mmmmmBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder setMmmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder builderForValue) {
        if (mmmmmBuilder_ == null) {
          ensureMmmmmIsMutable();
          mmmmm_.set(index, builderForValue.build());
          onChanged();
        } else {
          mmmmmBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder addMmmmm(com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger value) {
        if (mmmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmmIsMutable();
          mmmmm_.add(value);
          onChanged();
        } else {
          mmmmmBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder addMmmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger value) {
        if (mmmmmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMmmmmIsMutable();
          mmmmm_.add(index, value);
          onChanged();
        } else {
          mmmmmBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder addMmmmm(
          com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder builderForValue) {
        if (mmmmmBuilder_ == null) {
          ensureMmmmmIsMutable();
          mmmmm_.add(builderForValue.build());
          onChanged();
        } else {
          mmmmmBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder addMmmmm(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder builderForValue) {
        if (mmmmmBuilder_ == null) {
          ensureMmmmmIsMutable();
          mmmmm_.add(index, builderForValue.build());
          onChanged();
        } else {
          mmmmmBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder addAllMmmmm(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger> values) {
        if (mmmmmBuilder_ == null) {
          ensureMmmmmIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, mmmmm_);
          onChanged();
        } else {
          mmmmmBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder clearMmmmm() {
        if (mmmmmBuilder_ == null) {
          mmmmm_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00800000);
          onChanged();
        } else {
          mmmmmBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public Builder removeMmmmm(int index) {
        if (mmmmmBuilder_ == null) {
          ensureMmmmmIsMutable();
          mmmmm_.remove(index);
          onChanged();
        } else {
          mmmmmBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder getMmmmmBuilder(
          int index) {
        return getMmmmmFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder getMmmmmOrBuilder(
          int index) {
        if (mmmmmBuilder_ == null) {
          return mmmmm_.get(index);  } else {
          return mmmmmBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder> 
           getMmmmmOrBuilderList() {
        if (mmmmmBuilder_ != null) {
          return mmmmmBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(mmmmm_);
        }
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder addMmmmmBuilder() {
        return getMmmmmFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder addMmmmmBuilder(
          int index) {
        return getMmmmmFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持map的key为对象，用数组代替，不支持set，用list代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapListMapInteger mmmmm = 55;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder> 
           getMmmmmBuilderList() {
        return getMmmmmFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder> 
          getMmmmmFieldBuilder() {
        if (mmmmmBuilder_ == null) {
          mmmmmBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger, com.zfoo.protocol.packet.ProtobufObject.MapListMapInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.MapListMapIntegerOrBuilder>(
                  mmmmm_,
                  ((bitField0_ & 0x00800000) != 0),
                  getParentForChildren(),
                  isClean());
          mmmmm_ = null;
        }
        return mmmmmBuilder_;
      }

      private com.google.protobuf.Internal.IntList s_ = emptyIntList();
      private void ensureSIsMutable() {
        if (!((bitField0_ & 0x01000000) != 0)) {
          s_ = mutableCopy(s_);
          bitField0_ |= 0x01000000;
         }
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public java.util.List<java.lang.Integer>
          getSList() {
        return ((bitField0_ & 0x01000000) != 0) ?
                 java.util.Collections.unmodifiableList(s_) : s_;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public int getSCount() {
        return s_.size();
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public int getS(int index) {
        return s_.getInt(index);
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public Builder setS(
          int index, int value) {
        ensureSIsMutable();
        s_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public Builder addS(int value) {
        ensureSIsMutable();
        s_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public Builder addAllS(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, s_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated int32 s = 61;</code>
       */
      public Builder clearS() {
        s_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x01000000);
        onChanged();
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> ss_ =
        java.util.Collections.emptyList();
      private void ensureSsIsMutable() {
        if (!((bitField0_ & 0x02000000) != 0)) {
          ss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListListInteger>(ss_);
          bitField0_ |= 0x02000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> ssBuilder_;

      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger> getSsList() {
        if (ssBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ss_);
        } else {
          return ssBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public int getSsCount() {
        if (ssBuilder_ == null) {
          return ss_.size();
        } else {
          return ssBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger getSs(int index) {
        if (ssBuilder_ == null) {
          return ss_.get(index);
        } else {
          return ssBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder setSs(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (ssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSsIsMutable();
          ss_.set(index, value);
          onChanged();
        } else {
          ssBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder setSs(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (ssBuilder_ == null) {
          ensureSsIsMutable();
          ss_.set(index, builderForValue.build());
          onChanged();
        } else {
          ssBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder addSs(com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (ssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSsIsMutable();
          ss_.add(value);
          onChanged();
        } else {
          ssBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder addSs(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger value) {
        if (ssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSsIsMutable();
          ss_.add(index, value);
          onChanged();
        } else {
          ssBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder addSs(
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (ssBuilder_ == null) {
          ensureSsIsMutable();
          ss_.add(builderForValue.build());
          onChanged();
        } else {
          ssBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder addSs(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder builderForValue) {
        if (ssBuilder_ == null) {
          ensureSsIsMutable();
          ss_.add(index, builderForValue.build());
          onChanged();
        } else {
          ssBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder addAllSs(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListListInteger> values) {
        if (ssBuilder_ == null) {
          ensureSsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, ss_);
          onChanged();
        } else {
          ssBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder clearSs() {
        if (ssBuilder_ == null) {
          ss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
          onChanged();
        } else {
          ssBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public Builder removeSs(int index) {
        if (ssBuilder_ == null) {
          ensureSsIsMutable();
          ss_.remove(index);
          onChanged();
        } else {
          ssBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder getSsBuilder(
          int index) {
        return getSsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder getSsOrBuilder(
          int index) {
        if (ssBuilder_ == null) {
          return ss_.get(index);  } else {
          return ssBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
           getSsOrBuilderList() {
        if (ssBuilder_ != null) {
          return ssBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ss_);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addSsBuilder() {
        return getSsFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder addSsBuilder(
          int index) {
        return getSsFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListListInteger ss = 62;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder> 
           getSsBuilderList() {
        return getSsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder> 
          getSsFieldBuilder() {
        if (ssBuilder_ == null) {
          ssBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListListInteger, com.zfoo.protocol.packet.ProtobufObject.ListListInteger.Builder, com.zfoo.protocol.packet.ProtobufObject.ListListIntegerOrBuilder>(
                  ss_,
                  ((bitField0_ & 0x02000000) != 0),
                  getParentForChildren(),
                  isClean());
          ss_ = null;
        }
        return ssBuilder_;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> sss_ =
        java.util.Collections.emptyList();
      private void ensureSssIsMutable() {
        if (!((bitField0_ & 0x04000000) != 0)) {
          sss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ListObjectA>(sss_);
          bitField0_ |= 0x04000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> sssBuilder_;

      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA> getSssList() {
        if (sssBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sss_);
        } else {
          return sssBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public int getSssCount() {
        if (sssBuilder_ == null) {
          return sss_.size();
        } else {
          return sssBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA getSss(int index) {
        if (sssBuilder_ == null) {
          return sss_.get(index);
        } else {
          return sssBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder setSss(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (sssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssIsMutable();
          sss_.set(index, value);
          onChanged();
        } else {
          sssBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder setSss(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (sssBuilder_ == null) {
          ensureSssIsMutable();
          sss_.set(index, builderForValue.build());
          onChanged();
        } else {
          sssBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder addSss(com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (sssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssIsMutable();
          sss_.add(value);
          onChanged();
        } else {
          sssBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder addSss(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA value) {
        if (sssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssIsMutable();
          sss_.add(index, value);
          onChanged();
        } else {
          sssBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder addSss(
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (sssBuilder_ == null) {
          ensureSssIsMutable();
          sss_.add(builderForValue.build());
          onChanged();
        } else {
          sssBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder addSss(
          int index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder builderForValue) {
        if (sssBuilder_ == null) {
          ensureSssIsMutable();
          sss_.add(index, builderForValue.build());
          onChanged();
        } else {
          sssBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder addAllSss(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectA> values) {
        if (sssBuilder_ == null) {
          ensureSssIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sss_);
          onChanged();
        } else {
          sssBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder clearSss() {
        if (sssBuilder_ == null) {
          sss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x04000000);
          onChanged();
        } else {
          sssBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public Builder removeSss(int index) {
        if (sssBuilder_ == null) {
          ensureSssIsMutable();
          sss_.remove(index);
          onChanged();
        } else {
          sssBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder getSssBuilder(
          int index) {
        return getSssFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder getSssOrBuilder(
          int index) {
        if (sssBuilder_ == null) {
          return sss_.get(index);  } else {
          return sssBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
           getSssOrBuilderList() {
        if (sssBuilder_ != null) {
          return sssBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sss_);
        }
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addSssBuilder() {
        return getSssFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder addSssBuilder(
          int index) {
        return getSssFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持嵌套set和list，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .ListObjectA sss = 63;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder> 
           getSssBuilderList() {
        return getSssFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder> 
          getSssFieldBuilder() {
        if (sssBuilder_ == null) {
          sssBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ListObjectA, com.zfoo.protocol.packet.ProtobufObject.ListObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ListObjectAOrBuilder>(
                  sss_,
                  ((bitField0_ & 0x04000000) != 0),
                  getParentForChildren(),
                  isClean());
          sss_ = null;
        }
        return sssBuilder_;
      }

      private com.google.protobuf.LazyStringList ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSsssIsMutable() {
        if (!((bitField0_ & 0x08000000) != 0)) {
          ssss_ = new com.google.protobuf.LazyStringArrayList(ssss_);
          bitField0_ |= 0x08000000;
         }
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getSsssList() {
        return ssss_.getUnmodifiableView();
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public int getSsssCount() {
        return ssss_.size();
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public java.lang.String getSsss(int index) {
        return ssss_.get(index);
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public com.google.protobuf.ByteString
          getSsssBytes(int index) {
        return ssss_.getByteString(index);
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public Builder setSsss(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSsssIsMutable();
        ssss_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addSsss(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSsssIsMutable();
        ssss_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addAllSsss(
          java.lang.Iterable<java.lang.String> values) {
        ensureSsssIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ssss_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public Builder clearSsss() {
        ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set，用数组代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addSsssBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureSsssIsMutable();
        ssss_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> sssss_ =
        java.util.Collections.emptyList();
      private void ensureSssssIsMutable() {
        if (!((bitField0_ & 0x10000000) != 0)) {
          sssss_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString>(sssss_);
          bitField0_ |= 0x10000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> sssssBuilder_;

      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> getSssssList() {
        if (sssssBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sssss_);
        } else {
          return sssssBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public int getSssssCount() {
        if (sssssBuilder_ == null) {
          return sssss_.size();
        } else {
          return sssssBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString getSssss(int index) {
        if (sssssBuilder_ == null) {
          return sssss_.get(index);
        } else {
          return sssssBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder setSssss(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (sssssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssssIsMutable();
          sssss_.set(index, value);
          onChanged();
        } else {
          sssssBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder setSssss(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (sssssBuilder_ == null) {
          ensureSssssIsMutable();
          sssss_.set(index, builderForValue.build());
          onChanged();
        } else {
          sssssBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder addSssss(com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (sssssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssssIsMutable();
          sssss_.add(value);
          onChanged();
        } else {
          sssssBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder addSssss(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString value) {
        if (sssssBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSssssIsMutable();
          sssss_.add(index, value);
          onChanged();
        } else {
          sssssBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder addSssss(
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (sssssBuilder_ == null) {
          ensureSssssIsMutable();
          sssss_.add(builderForValue.build());
          onChanged();
        } else {
          sssssBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder addSssss(
          int index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder builderForValue) {
        if (sssssBuilder_ == null) {
          ensureSssssIsMutable();
          sssss_.add(index, builderForValue.build());
          onChanged();
        } else {
          sssssBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder addAllSssss(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerString> values) {
        if (sssssBuilder_ == null) {
          ensureSssssIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sssss_);
          onChanged();
        } else {
          sssssBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder clearSssss() {
        if (sssssBuilder_ == null) {
          sssss_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x10000000);
          onChanged();
        } else {
          sssssBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public Builder removeSssss(int index) {
        if (sssssBuilder_ == null) {
          ensureSssssIsMutable();
          sssss_.remove(index);
          onChanged();
        } else {
          sssssBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder getSssssBuilder(
          int index) {
        return getSssssFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder getSssssOrBuilder(
          int index) {
        if (sssssBuilder_ == null) {
          return sssss_.get(index);  } else {
          return sssssBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
           getSssssOrBuilderList() {
        if (sssssBuilder_ != null) {
          return sssssBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sssss_);
        }
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addSssssBuilder() {
        return getSssssFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder addSssssBuilder(
          int index) {
        return getSssssFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.getDefaultInstance());
      }
      /**
       * <pre>
       * protobuf不支持set和嵌套map，用对象代替，减少了很多性能开销
       * </pre>
       *
       * <code>repeated .MapIntegerString sssss = 65;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder> 
           getSssssBuilderList() {
        return getSssssFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder> 
          getSssssFieldBuilder() {
        if (sssssBuilder_ == null) {
          sssssBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.MapIntegerString, com.zfoo.protocol.packet.ProtobufObject.MapIntegerString.Builder, com.zfoo.protocol.packet.ProtobufObject.MapIntegerStringOrBuilder>(
                  sssss_,
                  ((bitField0_ & 0x10000000) != 0),
                  getParentForChildren(),
                  isClean());
          sssss_ = null;
        }
        return sssssBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ProtobufComplexObject)
    }

    // @@protoc_insertion_point(class_scope:ProtobufComplexObject)
    private static final com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProtobufComplexObject>
        PARSER = new com.google.protobuf.AbstractParser<ProtobufComplexObject>() {
      @java.lang.Override
      public ProtobufComplexObject parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ProtobufComplexObject(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ProtobufComplexObject> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ProtobufComplexObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProtobufNormalObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ProtobufNormalObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 a = 1;</code>
     */
    int getA();

    /**
     * <code>bytes aaa = 3;</code>
     */
    com.google.protobuf.ByteString getAaa();

    /**
     * <code>int32 b = 5;</code>
     */
    int getB();

    /**
     * <code>int32 c = 9;</code>
     */
    int getC();

    /**
     * <code>int64 d = 13;</code>
     */
    long getD();

    /**
     * <code>float e = 17;</code>
     */
    float getE();

    /**
     * <code>double f = 21;</code>
     */
    double getF();

    /**
     * <code>bool g = 25;</code>
     */
    boolean getG();

    /**
     * <code>string jj = 33;</code>
     */
    java.lang.String getJj();
    /**
     * <code>string jj = 33;</code>
     */
    com.google.protobuf.ByteString
        getJjBytes();

    /**
     * <code>.ObjectA kk = 35;</code>
     */
    boolean hasKk();
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk();
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder();

    /**
     * <code>repeated int32 l = 37;</code>
     */
    java.util.List<java.lang.Integer> getLList();
    /**
     * <code>repeated int32 l = 37;</code>
     */
    int getLCount();
    /**
     * <code>repeated int32 l = 37;</code>
     */
    int getL(int index);

    /**
     * <code>repeated int64 ll = 38;</code>
     */
    java.util.List<java.lang.Long> getLlList();
    /**
     * <code>repeated int64 ll = 38;</code>
     */
    int getLlCount();
    /**
     * <code>repeated int64 ll = 38;</code>
     */
    long getLl(int index);

    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> 
        getLllList();
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectA getLll(int index);
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    int getLllCount();
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getLllOrBuilderList();
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getLllOrBuilder(
        int index);

    /**
     * <code>repeated string llll = 40;</code>
     */
    java.util.List<java.lang.String>
        getLlllList();
    /**
     * <code>repeated string llll = 40;</code>
     */
    int getLlllCount();
    /**
     * <code>repeated string llll = 40;</code>
     */
    java.lang.String getLlll(int index);
    /**
     * <code>repeated string llll = 40;</code>
     */
    com.google.protobuf.ByteString
        getLlllBytes(int index);

    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    int getMCount();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    boolean containsM(
        int key);
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, java.lang.String>
    getM();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */
    java.util.Map<java.lang.Integer, java.lang.String>
    getMMap();
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    java.lang.String getMOrThrow(
        int key);

    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    int getMmCount();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    boolean containsMm(
        int key);
    /**
     * Use {@link #getMmMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    getMm();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */
    java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    getMmMap();
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
        int key,
        com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue);
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
        int key);

    /**
     * <code>repeated int32 s = 61;</code>
     */
    java.util.List<java.lang.Integer> getSList();
    /**
     * <code>repeated int32 s = 61;</code>
     */
    int getSCount();
    /**
     * <code>repeated int32 s = 61;</code>
     */
    int getS(int index);

    /**
     * <code>repeated string ssss = 64;</code>
     */
    java.util.List<java.lang.String>
        getSsssList();
    /**
     * <code>repeated string ssss = 64;</code>
     */
    int getSsssCount();
    /**
     * <code>repeated string ssss = 64;</code>
     */
    java.lang.String getSsss(int index);
    /**
     * <code>repeated string ssss = 64;</code>
     */
    com.google.protobuf.ByteString
        getSsssBytes(int index);
  }
  /**
   * Protobuf type {@code ProtobufNormalObject}
   */
  public  static final class ProtobufNormalObject extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ProtobufNormalObject)
      ProtobufNormalObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProtobufNormalObject.newBuilder() to construct.
    private ProtobufNormalObject(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProtobufNormalObject() {
      aaa_ = com.google.protobuf.ByteString.EMPTY;
      jj_ = "";
      l_ = emptyIntList();
      ll_ = emptyLongList();
      lll_ = java.util.Collections.emptyList();
      llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      s_ = emptyIntList();
      ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ProtobufNormalObject();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ProtobufNormalObject(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {

              a_ = input.readInt32();
              break;
            }
            case 26: {

              aaa_ = input.readBytes();
              break;
            }
            case 40: {

              b_ = input.readInt32();
              break;
            }
            case 72: {

              c_ = input.readInt32();
              break;
            }
            case 104: {

              d_ = input.readInt64();
              break;
            }
            case 141: {

              e_ = input.readFloat();
              break;
            }
            case 169: {

              f_ = input.readDouble();
              break;
            }
            case 200: {

              g_ = input.readBool();
              break;
            }
            case 266: {
              java.lang.String s = input.readStringRequireUtf8();

              jj_ = s;
              break;
            }
            case 282: {
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder subBuilder = null;
              if (kk_ != null) {
                subBuilder = kk_.toBuilder();
              }
              kk_ = input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kk_);
                kk_ = subBuilder.buildPartial();
              }

              break;
            }
            case 296: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                l_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              l_.addInt(input.readInt32());
              break;
            }
            case 298: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                l_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                l_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 304: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                ll_ = newLongList();
                mutable_bitField0_ |= 0x00000002;
              }
              ll_.addLong(input.readInt64());
              break;
            }
            case 306: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                ll_ = newLongList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                ll_.addLong(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 314: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                lll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>();
                mutable_bitField0_ |= 0x00000004;
              }
              lll_.add(
                  input.readMessage(com.zfoo.protocol.packet.ProtobufObject.ObjectA.parser(), extensionRegistry));
              break;
            }
            case 322: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                llll_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              llll_.add(s);
              break;
            }
            case 410: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                m_ = com.google.protobuf.MapField.newMapField(
                    MDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000010;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
              m__ = input.readMessage(
                  MDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              m_.getMutableMap().put(
                  m__.getKey(), m__.getValue());
              break;
            }
            case 418: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                mm_ = com.google.protobuf.MapField.newMapField(
                    MmDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000020;
              }
              com.google.protobuf.MapEntry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
              mm__ = input.readMessage(
                  MmDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              mm_.getMutableMap().put(
                  mm__.getKey(), mm__.getValue());
              break;
            }
            case 488: {
              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                s_ = newIntList();
                mutable_bitField0_ |= 0x00000040;
              }
              s_.addInt(input.readInt32());
              break;
            }
            case 490: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000040) != 0) && input.getBytesUntilLimit() > 0) {
                s_ = newIntList();
                mutable_bitField0_ |= 0x00000040;
              }
              while (input.getBytesUntilLimit() > 0) {
                s_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 514: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000080) != 0)) {
                ssss_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              ssss_.add(s);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          l_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          ll_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          lll_ = java.util.Collections.unmodifiableList(lll_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          llll_ = llll_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000040) != 0)) {
          s_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000080) != 0)) {
          ssss_ = ssss_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 51:
          return internalGetM();
        case 52:
          return internalGetMm();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.Builder.class);
    }

    public static final int A_FIELD_NUMBER = 1;
    private int a_;
    /**
     * <code>int32 a = 1;</code>
     */
    public int getA() {
      return a_;
    }

    public static final int AAA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString aaa_;
    /**
     * <code>bytes aaa = 3;</code>
     */
    public com.google.protobuf.ByteString getAaa() {
      return aaa_;
    }

    public static final int B_FIELD_NUMBER = 5;
    private int b_;
    /**
     * <code>int32 b = 5;</code>
     */
    public int getB() {
      return b_;
    }

    public static final int C_FIELD_NUMBER = 9;
    private int c_;
    /**
     * <code>int32 c = 9;</code>
     */
    public int getC() {
      return c_;
    }

    public static final int D_FIELD_NUMBER = 13;
    private long d_;
    /**
     * <code>int64 d = 13;</code>
     */
    public long getD() {
      return d_;
    }

    public static final int E_FIELD_NUMBER = 17;
    private float e_;
    /**
     * <code>float e = 17;</code>
     */
    public float getE() {
      return e_;
    }

    public static final int F_FIELD_NUMBER = 21;
    private double f_;
    /**
     * <code>double f = 21;</code>
     */
    public double getF() {
      return f_;
    }

    public static final int G_FIELD_NUMBER = 25;
    private boolean g_;
    /**
     * <code>bool g = 25;</code>
     */
    public boolean getG() {
      return g_;
    }

    public static final int JJ_FIELD_NUMBER = 33;
    private volatile java.lang.Object jj_;
    /**
     * <code>string jj = 33;</code>
     */
    public java.lang.String getJj() {
      java.lang.Object ref = jj_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        jj_ = s;
        return s;
      }
    }
    /**
     * <code>string jj = 33;</code>
     */
    public com.google.protobuf.ByteString
        getJjBytes() {
      java.lang.Object ref = jj_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        jj_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KK_FIELD_NUMBER = 35;
    private com.zfoo.protocol.packet.ProtobufObject.ObjectA kk_;
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public boolean hasKk() {
      return kk_ != null;
    }
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk() {
      return kk_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
    }
    /**
     * <code>.ObjectA kk = 35;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder() {
      return getKk();
    }

    public static final int L_FIELD_NUMBER = 37;
    private com.google.protobuf.Internal.IntList l_;
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public java.util.List<java.lang.Integer>
        getLList() {
      return l_;
    }
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public int getLCount() {
      return l_.size();
    }
    /**
     * <code>repeated int32 l = 37;</code>
     */
    public int getL(int index) {
      return l_.getInt(index);
    }
    private int lMemoizedSerializedSize = -1;

    public static final int LL_FIELD_NUMBER = 38;
    private com.google.protobuf.Internal.LongList ll_;
    /**
     * <code>repeated int64 ll = 38;</code>
     */
    public java.util.List<java.lang.Long>
        getLlList() {
      return ll_;
    }
    /**
     * <code>repeated int64 ll = 38;</code>
     */
    public int getLlCount() {
      return ll_.size();
    }
    /**
     * <code>repeated int64 ll = 38;</code>
     */
    public long getLl(int index) {
      return ll_.getLong(index);
    }
    private int llMemoizedSerializedSize = -1;

    public static final int LLL_FIELD_NUMBER = 39;
    private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> lll_;
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getLllList() {
      return lll_;
    }
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
        getLllOrBuilderList() {
      return lll_;
    }
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    public int getLllCount() {
      return lll_.size();
    }
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getLll(int index) {
      return lll_.get(index);
    }
    /**
     * <code>repeated .ObjectA lll = 39;</code>
     */
    public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getLllOrBuilder(
        int index) {
      return lll_.get(index);
    }

    public static final int LLLL_FIELD_NUMBER = 40;
    private com.google.protobuf.LazyStringList llll_;
    /**
     * <code>repeated string llll = 40;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getLlllList() {
      return llll_;
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public int getLlllCount() {
      return llll_.size();
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public java.lang.String getLlll(int index) {
      return llll_.get(index);
    }
    /**
     * <code>repeated string llll = 40;</code>
     */
    public com.google.protobuf.ByteString
        getLlllBytes(int index) {
      return llll_.getByteString(index);
    }

    public static final int M_FIELD_NUMBER = 51;
    private static final class MDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, java.lang.String>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_MEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, java.lang.String> m_;
    private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
    internalGetM() {
      if (m_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MDefaultEntryHolder.defaultEntry);
      }
      return m_;
    }

    public int getMCount() {
      return internalGetM().getMap().size();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public boolean containsM(
        int key) {
      
      return internalGetM().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, java.lang.String> getM() {
      return getMMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
      return internalGetM().getMap();
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.lang.String getMOrDefault(
        int key,
        java.lang.String defaultValue) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, string&gt; m = 51;</code>
     */

    public java.lang.String getMOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, java.lang.String> map =
          internalGetM().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MM_FIELD_NUMBER = 52;
    private static final class MmDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>newDefaultInstance(
                  com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_MmEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
    }
    private com.google.protobuf.MapField<
        java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> mm_;
    private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
    internalGetMm() {
      if (mm_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MmDefaultEntryHolder.defaultEntry);
      }
      return mm_;
    }

    public int getMmCount() {
      return internalGetMm().getMap().size();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public boolean containsMm(
        int key) {
      
      return internalGetMm().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMmMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMm() {
      return getMmMap();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMmMap() {
      return internalGetMm().getMap();
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
        int key,
        com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue) {
      
      java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
          internalGetMm().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
     */

    public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
          internalGetMm().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int S_FIELD_NUMBER = 61;
    private com.google.protobuf.Internal.IntList s_;
    /**
     * <code>repeated int32 s = 61;</code>
     */
    public java.util.List<java.lang.Integer>
        getSList() {
      return s_;
    }
    /**
     * <code>repeated int32 s = 61;</code>
     */
    public int getSCount() {
      return s_.size();
    }
    /**
     * <code>repeated int32 s = 61;</code>
     */
    public int getS(int index) {
      return s_.getInt(index);
    }
    private int sMemoizedSerializedSize = -1;

    public static final int SSSS_FIELD_NUMBER = 64;
    private com.google.protobuf.LazyStringList ssss_;
    /**
     * <code>repeated string ssss = 64;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getSsssList() {
      return ssss_;
    }
    /**
     * <code>repeated string ssss = 64;</code>
     */
    public int getSsssCount() {
      return ssss_.size();
    }
    /**
     * <code>repeated string ssss = 64;</code>
     */
    public java.lang.String getSsss(int index) {
      return ssss_.get(index);
    }
    /**
     * <code>repeated string ssss = 64;</code>
     */
    public com.google.protobuf.ByteString
        getSsssBytes(int index) {
      return ssss_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (a_ != 0) {
        output.writeInt32(1, a_);
      }
      if (!aaa_.isEmpty()) {
        output.writeBytes(3, aaa_);
      }
      if (b_ != 0) {
        output.writeInt32(5, b_);
      }
      if (c_ != 0) {
        output.writeInt32(9, c_);
      }
      if (d_ != 0L) {
        output.writeInt64(13, d_);
      }
      if (e_ != 0F) {
        output.writeFloat(17, e_);
      }
      if (f_ != 0D) {
        output.writeDouble(21, f_);
      }
      if (g_ != false) {
        output.writeBool(25, g_);
      }
      if (!getJjBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 33, jj_);
      }
      if (kk_ != null) {
        output.writeMessage(35, getKk());
      }
      if (getLList().size() > 0) {
        output.writeUInt32NoTag(298);
        output.writeUInt32NoTag(lMemoizedSerializedSize);
      }
      for (int i = 0; i < l_.size(); i++) {
        output.writeInt32NoTag(l_.getInt(i));
      }
      if (getLlList().size() > 0) {
        output.writeUInt32NoTag(306);
        output.writeUInt32NoTag(llMemoizedSerializedSize);
      }
      for (int i = 0; i < ll_.size(); i++) {
        output.writeInt64NoTag(ll_.getLong(i));
      }
      for (int i = 0; i < lll_.size(); i++) {
        output.writeMessage(39, lll_.get(i));
      }
      for (int i = 0; i < llll_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 40, llll_.getRaw(i));
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetM(),
          MDefaultEntryHolder.defaultEntry,
          51);
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetMm(),
          MmDefaultEntryHolder.defaultEntry,
          52);
      if (getSList().size() > 0) {
        output.writeUInt32NoTag(490);
        output.writeUInt32NoTag(sMemoizedSerializedSize);
      }
      for (int i = 0; i < s_.size(); i++) {
        output.writeInt32NoTag(s_.getInt(i));
      }
      for (int i = 0; i < ssss_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 64, ssss_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (a_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, a_);
      }
      if (!aaa_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, aaa_);
      }
      if (b_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, b_);
      }
      if (c_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, c_);
      }
      if (d_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(13, d_);
      }
      if (e_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(17, e_);
      }
      if (f_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(21, f_);
      }
      if (g_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(25, g_);
      }
      if (!getJjBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, jj_);
      }
      if (kk_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, getKk());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < l_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(l_.getInt(i));
        }
        size += dataSize;
        if (!getLList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        lMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ll_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(ll_.getLong(i));
        }
        size += dataSize;
        if (!getLlList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        llMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < lll_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, lll_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < llll_.size(); i++) {
          dataSize += computeStringSizeNoTag(llll_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getLlllList().size();
      }
      for (java.util.Map.Entry<java.lang.Integer, java.lang.String> entry
           : internalGetM().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, java.lang.String>
        m__ = MDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(51, m__);
      }
      for (java.util.Map.Entry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> entry
           : internalGetMm().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
        mm__ = MmDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(52, mm__);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < s_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(s_.getInt(i));
        }
        size += dataSize;
        if (!getSList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        sMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ssss_.size(); i++) {
          dataSize += computeStringSizeNoTag(ssss_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getSsssList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject other = (com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject) obj;

      if (getA()
          != other.getA()) return false;
      if (!getAaa()
          .equals(other.getAaa())) return false;
      if (getB()
          != other.getB()) return false;
      if (getC()
          != other.getC()) return false;
      if (getD()
          != other.getD()) return false;
      if (java.lang.Float.floatToIntBits(getE())
          != java.lang.Float.floatToIntBits(
              other.getE())) return false;
      if (java.lang.Double.doubleToLongBits(getF())
          != java.lang.Double.doubleToLongBits(
              other.getF())) return false;
      if (getG()
          != other.getG()) return false;
      if (!getJj()
          .equals(other.getJj())) return false;
      if (hasKk() != other.hasKk()) return false;
      if (hasKk()) {
        if (!getKk()
            .equals(other.getKk())) return false;
      }
      if (!getLList()
          .equals(other.getLList())) return false;
      if (!getLlList()
          .equals(other.getLlList())) return false;
      if (!getLllList()
          .equals(other.getLllList())) return false;
      if (!getLlllList()
          .equals(other.getLlllList())) return false;
      if (!internalGetM().equals(
          other.internalGetM())) return false;
      if (!internalGetMm().equals(
          other.internalGetMm())) return false;
      if (!getSList()
          .equals(other.getSList())) return false;
      if (!getSsssList()
          .equals(other.getSsssList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + A_FIELD_NUMBER;
      hash = (53 * hash) + getA();
      hash = (37 * hash) + AAA_FIELD_NUMBER;
      hash = (53 * hash) + getAaa().hashCode();
      hash = (37 * hash) + B_FIELD_NUMBER;
      hash = (53 * hash) + getB();
      hash = (37 * hash) + C_FIELD_NUMBER;
      hash = (53 * hash) + getC();
      hash = (37 * hash) + D_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getD());
      hash = (37 * hash) + E_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getE());
      hash = (37 * hash) + F_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getF()));
      hash = (37 * hash) + G_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getG());
      hash = (37 * hash) + JJ_FIELD_NUMBER;
      hash = (53 * hash) + getJj().hashCode();
      if (hasKk()) {
        hash = (37 * hash) + KK_FIELD_NUMBER;
        hash = (53 * hash) + getKk().hashCode();
      }
      if (getLCount() > 0) {
        hash = (37 * hash) + L_FIELD_NUMBER;
        hash = (53 * hash) + getLList().hashCode();
      }
      if (getLlCount() > 0) {
        hash = (37 * hash) + LL_FIELD_NUMBER;
        hash = (53 * hash) + getLlList().hashCode();
      }
      if (getLllCount() > 0) {
        hash = (37 * hash) + LLL_FIELD_NUMBER;
        hash = (53 * hash) + getLllList().hashCode();
      }
      if (getLlllCount() > 0) {
        hash = (37 * hash) + LLLL_FIELD_NUMBER;
        hash = (53 * hash) + getLlllList().hashCode();
      }
      if (!internalGetM().getMap().isEmpty()) {
        hash = (37 * hash) + M_FIELD_NUMBER;
        hash = (53 * hash) + internalGetM().hashCode();
      }
      if (!internalGetMm().getMap().isEmpty()) {
        hash = (37 * hash) + MM_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMm().hashCode();
      }
      if (getSCount() > 0) {
        hash = (37 * hash) + S_FIELD_NUMBER;
        hash = (53 * hash) + getSList().hashCode();
      }
      if (getSsssCount() > 0) {
        hash = (37 * hash) + SSSS_FIELD_NUMBER;
        hash = (53 * hash) + getSsssList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ProtobufNormalObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ProtobufNormalObject)
        com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 51:
            return internalGetM();
          case 52:
            return internalGetMm();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 51:
            return internalGetMutableM();
          case 52:
            return internalGetMutableMm();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLllFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        a_ = 0;

        aaa_ = com.google.protobuf.ByteString.EMPTY;

        b_ = 0;

        c_ = 0;

        d_ = 0L;

        e_ = 0F;

        f_ = 0D;

        g_ = false;

        jj_ = "";

        if (kkBuilder_ == null) {
          kk_ = null;
        } else {
          kk_ = null;
          kkBuilder_ = null;
        }
        l_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        ll_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lllBuilder_ == null) {
          lll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          lllBuilder_.clear();
        }
        llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableM().clear();
        internalGetMutableMm().clear();
        s_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000040);
        ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufNormalObject_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject build() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject result = new com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject(this);
        int from_bitField0_ = bitField0_;
        result.a_ = a_;
        result.aaa_ = aaa_;
        result.b_ = b_;
        result.c_ = c_;
        result.d_ = d_;
        result.e_ = e_;
        result.f_ = f_;
        result.g_ = g_;
        result.jj_ = jj_;
        if (kkBuilder_ == null) {
          result.kk_ = kk_;
        } else {
          result.kk_ = kkBuilder_.build();
        }
        if (((bitField0_ & 0x00000001) != 0)) {
          l_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.l_ = l_;
        if (((bitField0_ & 0x00000002) != 0)) {
          ll_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.ll_ = ll_;
        if (lllBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            lll_ = java.util.Collections.unmodifiableList(lll_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.lll_ = lll_;
        } else {
          result.lll_ = lllBuilder_.build();
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          llll_ = llll_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.llll_ = llll_;
        result.m_ = internalGetM();
        result.m_.makeImmutable();
        result.mm_ = internalGetMm();
        result.mm_.makeImmutable();
        if (((bitField0_ & 0x00000040) != 0)) {
          s_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.s_ = s_;
        if (((bitField0_ & 0x00000080) != 0)) {
          ssss_ = ssss_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.ssss_ = ssss_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject.getDefaultInstance()) return this;
        if (other.getA() != 0) {
          setA(other.getA());
        }
        if (other.getAaa() != com.google.protobuf.ByteString.EMPTY) {
          setAaa(other.getAaa());
        }
        if (other.getB() != 0) {
          setB(other.getB());
        }
        if (other.getC() != 0) {
          setC(other.getC());
        }
        if (other.getD() != 0L) {
          setD(other.getD());
        }
        if (other.getE() != 0F) {
          setE(other.getE());
        }
        if (other.getF() != 0D) {
          setF(other.getF());
        }
        if (other.getG() != false) {
          setG(other.getG());
        }
        if (!other.getJj().isEmpty()) {
          jj_ = other.jj_;
          onChanged();
        }
        if (other.hasKk()) {
          mergeKk(other.getKk());
        }
        if (!other.l_.isEmpty()) {
          if (l_.isEmpty()) {
            l_ = other.l_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureLIsMutable();
            l_.addAll(other.l_);
          }
          onChanged();
        }
        if (!other.ll_.isEmpty()) {
          if (ll_.isEmpty()) {
            ll_ = other.ll_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureLlIsMutable();
            ll_.addAll(other.ll_);
          }
          onChanged();
        }
        if (lllBuilder_ == null) {
          if (!other.lll_.isEmpty()) {
            if (lll_.isEmpty()) {
              lll_ = other.lll_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureLllIsMutable();
              lll_.addAll(other.lll_);
            }
            onChanged();
          }
        } else {
          if (!other.lll_.isEmpty()) {
            if (lllBuilder_.isEmpty()) {
              lllBuilder_.dispose();
              lllBuilder_ = null;
              lll_ = other.lll_;
              bitField0_ = (bitField0_ & ~0x00000004);
              lllBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLllFieldBuilder() : null;
            } else {
              lllBuilder_.addAllMessages(other.lll_);
            }
          }
        }
        if (!other.llll_.isEmpty()) {
          if (llll_.isEmpty()) {
            llll_ = other.llll_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureLlllIsMutable();
            llll_.addAll(other.llll_);
          }
          onChanged();
        }
        internalGetMutableM().mergeFrom(
            other.internalGetM());
        internalGetMutableMm().mergeFrom(
            other.internalGetMm());
        if (!other.s_.isEmpty()) {
          if (s_.isEmpty()) {
            s_ = other.s_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureSIsMutable();
            s_.addAll(other.s_);
          }
          onChanged();
        }
        if (!other.ssss_.isEmpty()) {
          if (ssss_.isEmpty()) {
            ssss_ = other.ssss_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureSsssIsMutable();
            ssss_.addAll(other.ssss_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int a_ ;
      /**
       * <code>int32 a = 1;</code>
       */
      public int getA() {
        return a_;
      }
      /**
       * <code>int32 a = 1;</code>
       */
      public Builder setA(int value) {
        
        a_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 a = 1;</code>
       */
      public Builder clearA() {
        
        a_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString aaa_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes aaa = 3;</code>
       */
      public com.google.protobuf.ByteString getAaa() {
        return aaa_;
      }
      /**
       * <code>bytes aaa = 3;</code>
       */
      public Builder setAaa(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        aaa_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes aaa = 3;</code>
       */
      public Builder clearAaa() {
        
        aaa_ = getDefaultInstance().getAaa();
        onChanged();
        return this;
      }

      private int b_ ;
      /**
       * <code>int32 b = 5;</code>
       */
      public int getB() {
        return b_;
      }
      /**
       * <code>int32 b = 5;</code>
       */
      public Builder setB(int value) {
        
        b_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 b = 5;</code>
       */
      public Builder clearB() {
        
        b_ = 0;
        onChanged();
        return this;
      }

      private int c_ ;
      /**
       * <code>int32 c = 9;</code>
       */
      public int getC() {
        return c_;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder setC(int value) {
        
        c_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder clearC() {
        
        c_ = 0;
        onChanged();
        return this;
      }

      private long d_ ;
      /**
       * <code>int64 d = 13;</code>
       */
      public long getD() {
        return d_;
      }
      /**
       * <code>int64 d = 13;</code>
       */
      public Builder setD(long value) {
        
        d_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 d = 13;</code>
       */
      public Builder clearD() {
        
        d_ = 0L;
        onChanged();
        return this;
      }

      private float e_ ;
      /**
       * <code>float e = 17;</code>
       */
      public float getE() {
        return e_;
      }
      /**
       * <code>float e = 17;</code>
       */
      public Builder setE(float value) {
        
        e_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float e = 17;</code>
       */
      public Builder clearE() {
        
        e_ = 0F;
        onChanged();
        return this;
      }

      private double f_ ;
      /**
       * <code>double f = 21;</code>
       */
      public double getF() {
        return f_;
      }
      /**
       * <code>double f = 21;</code>
       */
      public Builder setF(double value) {
        
        f_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double f = 21;</code>
       */
      public Builder clearF() {
        
        f_ = 0D;
        onChanged();
        return this;
      }

      private boolean g_ ;
      /**
       * <code>bool g = 25;</code>
       */
      public boolean getG() {
        return g_;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder setG(boolean value) {
        
        g_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder clearG() {
        
        g_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object jj_ = "";
      /**
       * <code>string jj = 33;</code>
       */
      public java.lang.String getJj() {
        java.lang.Object ref = jj_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          jj_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string jj = 33;</code>
       */
      public com.google.protobuf.ByteString
          getJjBytes() {
        java.lang.Object ref = jj_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jj_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder setJj(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        jj_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder clearJj() {
        
        jj_ = getDefaultInstance().getJj();
        onChanged();
        return this;
      }
      /**
       * <code>string jj = 33;</code>
       */
      public Builder setJjBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        jj_ = value;
        onChanged();
        return this;
      }

      private com.zfoo.protocol.packet.ProtobufObject.ObjectA kk_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> kkBuilder_;
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public boolean hasKk() {
        return kkBuilder_ != null || kk_ != null;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getKk() {
        if (kkBuilder_ == null) {
          return kk_ == null ? com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
        } else {
          return kkBuilder_.getMessage();
        }
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder setKk(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kk_ = value;
          onChanged();
        } else {
          kkBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder setKk(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (kkBuilder_ == null) {
          kk_ = builderForValue.build();
          onChanged();
        } else {
          kkBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder mergeKk(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (kkBuilder_ == null) {
          if (kk_ != null) {
            kk_ =
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.newBuilder(kk_).mergeFrom(value).buildPartial();
          } else {
            kk_ = value;
          }
          onChanged();
        } else {
          kkBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public Builder clearKk() {
        if (kkBuilder_ == null) {
          kk_ = null;
          onChanged();
        } else {
          kk_ = null;
          kkBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getKkBuilder() {
        
        onChanged();
        return getKkFieldBuilder().getBuilder();
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getKkOrBuilder() {
        if (kkBuilder_ != null) {
          return kkBuilder_.getMessageOrBuilder();
        } else {
          return kk_ == null ?
              com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance() : kk_;
        }
      }
      /**
       * <code>.ObjectA kk = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getKkFieldBuilder() {
        if (kkBuilder_ == null) {
          kkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  getKk(),
                  getParentForChildren(),
                  isClean());
          kk_ = null;
        }
        return kkBuilder_;
      }

      private com.google.protobuf.Internal.IntList l_ = emptyIntList();
      private void ensureLIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          l_ = mutableCopy(l_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public java.util.List<java.lang.Integer>
          getLList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(l_) : l_;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public int getLCount() {
        return l_.size();
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public int getL(int index) {
        return l_.getInt(index);
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder setL(
          int index, int value) {
        ensureLIsMutable();
        l_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder addL(int value) {
        ensureLIsMutable();
        l_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder addAllL(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureLIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, l_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 l = 37;</code>
       */
      public Builder clearL() {
        l_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList ll_ = emptyLongList();
      private void ensureLlIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          ll_ = mutableCopy(ll_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public java.util.List<java.lang.Long>
          getLlList() {
        return ((bitField0_ & 0x00000002) != 0) ?
                 java.util.Collections.unmodifiableList(ll_) : ll_;
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public int getLlCount() {
        return ll_.size();
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public long getLl(int index) {
        return ll_.getLong(index);
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public Builder setLl(
          int index, long value) {
        ensureLlIsMutable();
        ll_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public Builder addLl(long value) {
        ensureLlIsMutable();
        ll_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public Builder addAllLl(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureLlIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ll_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 ll = 38;</code>
       */
      public Builder clearLl() {
        ll_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> lll_ =
        java.util.Collections.emptyList();
      private void ensureLllIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          lll_ = new java.util.ArrayList<com.zfoo.protocol.packet.ProtobufObject.ObjectA>(lll_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> lllBuilder_;

      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA> getLllList() {
        if (lllBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lll_);
        } else {
          return lllBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public int getLllCount() {
        if (lllBuilder_ == null) {
          return lll_.size();
        } else {
          return lllBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getLll(int index) {
        if (lllBuilder_ == null) {
          return lll_.get(index);
        } else {
          return lllBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder setLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.set(index, value);
          onChanged();
        } else {
          lllBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder setLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.set(index, builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder addLll(com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.add(value);
          onChanged();
        } else {
          lllBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder addLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        if (lllBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLllIsMutable();
          lll_.add(index, value);
          onChanged();
        } else {
          lllBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder addLll(
          com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.add(builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder addLll(
          int index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder builderForValue) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.add(index, builderForValue.build());
          onChanged();
        } else {
          lllBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder addAllLll(
          java.lang.Iterable<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectA> values) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lll_);
          onChanged();
        } else {
          lllBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder clearLll() {
        if (lllBuilder_ == null) {
          lll_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          lllBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public Builder removeLll(int index) {
        if (lllBuilder_ == null) {
          ensureLllIsMutable();
          lll_.remove(index);
          onChanged();
        } else {
          lllBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder getLllBuilder(
          int index) {
        return getLllFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder getLllOrBuilder(
          int index) {
        if (lllBuilder_ == null) {
          return lll_.get(index);  } else {
          return lllBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public java.util.List<? extends com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
           getLllOrBuilderList() {
        if (lllBuilder_ != null) {
          return lllBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lll_);
        }
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addLllBuilder() {
        return getLllFieldBuilder().addBuilder(
            com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder addLllBuilder(
          int index) {
        return getLllFieldBuilder().addBuilder(
            index, com.zfoo.protocol.packet.ProtobufObject.ObjectA.getDefaultInstance());
      }
      /**
       * <code>repeated .ObjectA lll = 39;</code>
       */
      public java.util.List<com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder> 
           getLllBuilderList() {
        return getLllFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder> 
          getLllFieldBuilder() {
        if (lllBuilder_ == null) {
          lllBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.zfoo.protocol.packet.ProtobufObject.ObjectA, com.zfoo.protocol.packet.ProtobufObject.ObjectA.Builder, com.zfoo.protocol.packet.ProtobufObject.ObjectAOrBuilder>(
                  lll_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          lll_ = null;
        }
        return lllBuilder_;
      }

      private com.google.protobuf.LazyStringList llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureLlllIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          llll_ = new com.google.protobuf.LazyStringArrayList(llll_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getLlllList() {
        return llll_.getUnmodifiableView();
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public int getLlllCount() {
        return llll_.size();
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public java.lang.String getLlll(int index) {
        return llll_.get(index);
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public com.google.protobuf.ByteString
          getLlllBytes(int index) {
        return llll_.getByteString(index);
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder setLlll(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLlllIsMutable();
        llll_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addLlll(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLlllIsMutable();
        llll_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addAllLlll(
          java.lang.Iterable<java.lang.String> values) {
        ensureLlllIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, llll_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder clearLlll() {
        llll_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string llll = 40;</code>
       */
      public Builder addLlllBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureLlllIsMutable();
        llll_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, java.lang.String> m_;
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetM() {
        if (m_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        return m_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, java.lang.String>
      internalGetMutableM() {
        onChanged();;
        if (m_ == null) {
          m_ = com.google.protobuf.MapField.newMapField(
              MDefaultEntryHolder.defaultEntry);
        }
        if (!m_.isMutable()) {
          m_ = m_.copy();
        }
        return m_;
      }

      public int getMCount() {
        return internalGetM().getMap().size();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public boolean containsM(
          int key) {
        
        return internalGetM().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String> getM() {
        return getMMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.util.Map<java.lang.Integer, java.lang.String> getMMap() {
        return internalGetM().getMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.lang.String getMOrDefault(
          int key,
          java.lang.String defaultValue) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public java.lang.String getMOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, java.lang.String> map =
            internalGetM().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearM() {
        internalGetMutableM().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public Builder removeM(
          int key) {
        
        internalGetMutableM().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, java.lang.String>
      getMutableM() {
        return internalGetMutableM().getMutableMap();
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */
      public Builder putM(
          int key,
          java.lang.String value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableM().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, string&gt; m = 51;</code>
       */

      public Builder putAllM(
          java.util.Map<java.lang.Integer, java.lang.String> values) {
        internalGetMutableM().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> mm_;
      private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      internalGetMm() {
        if (mm_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MmDefaultEntryHolder.defaultEntry);
        }
        return mm_;
      }
      private com.google.protobuf.MapField<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      internalGetMutableMm() {
        onChanged();;
        if (mm_ == null) {
          mm_ = com.google.protobuf.MapField.newMapField(
              MmDefaultEntryHolder.defaultEntry);
        }
        if (!mm_.isMutable()) {
          mm_ = mm_.copy();
        }
        return mm_;
      }

      public int getMmCount() {
        return internalGetMm().getMap().size();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public boolean containsMm(
          int key) {
        
        return internalGetMm().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMmMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMm() {
        return getMmMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> getMmMap() {
        return internalGetMm().getMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrDefault(
          int key,
          com.zfoo.protocol.packet.ProtobufObject.ObjectA defaultValue) {
        
        java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
            internalGetMm().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public com.zfoo.protocol.packet.ProtobufObject.ObjectA getMmOrThrow(
          int key) {
        
        java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> map =
            internalGetMm().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMm() {
        internalGetMutableMm().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public Builder removeMm(
          int key) {
        
        internalGetMutableMm().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA>
      getMutableMm() {
        return internalGetMutableMm().getMutableMap();
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */
      public Builder putMm(
          int key,
          com.zfoo.protocol.packet.ProtobufObject.ObjectA value) {
        
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMm().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;int32, .ObjectA&gt; mm = 52;</code>
       */

      public Builder putAllMm(
          java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ProtobufObject.ObjectA> values) {
        internalGetMutableMm().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.Internal.IntList s_ = emptyIntList();
      private void ensureSIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          s_ = mutableCopy(s_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public java.util.List<java.lang.Integer>
          getSList() {
        return ((bitField0_ & 0x00000040) != 0) ?
                 java.util.Collections.unmodifiableList(s_) : s_;
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public int getSCount() {
        return s_.size();
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public int getS(int index) {
        return s_.getInt(index);
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public Builder setS(
          int index, int value) {
        ensureSIsMutable();
        s_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public Builder addS(int value) {
        ensureSIsMutable();
        s_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public Builder addAllS(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, s_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 s = 61;</code>
       */
      public Builder clearS() {
        s_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSsssIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          ssss_ = new com.google.protobuf.LazyStringArrayList(ssss_);
          bitField0_ |= 0x00000080;
         }
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getSsssList() {
        return ssss_.getUnmodifiableView();
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public int getSsssCount() {
        return ssss_.size();
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public java.lang.String getSsss(int index) {
        return ssss_.get(index);
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public com.google.protobuf.ByteString
          getSsssBytes(int index) {
        return ssss_.getByteString(index);
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public Builder setSsss(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSsssIsMutable();
        ssss_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addSsss(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSsssIsMutable();
        ssss_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addAllSsss(
          java.lang.Iterable<java.lang.String> values) {
        ensureSsssIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ssss_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public Builder clearSsss() {
        ssss_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string ssss = 64;</code>
       */
      public Builder addSsssBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureSsssIsMutable();
        ssss_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ProtobufNormalObject)
    }

    // @@protoc_insertion_point(class_scope:ProtobufNormalObject)
    private static final com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProtobufNormalObject>
        PARSER = new com.google.protobuf.AbstractParser<ProtobufNormalObject>() {
      @java.lang.Override
      public ProtobufNormalObject parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ProtobufNormalObject(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ProtobufNormalObject> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ProtobufNormalObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProtobufSimpleObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ProtobufSimpleObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 c = 9;</code>
     */
    int getC();

    /**
     * <code>bool g = 25;</code>
     */
    boolean getG();
  }
  /**
   * Protobuf type {@code ProtobufSimpleObject}
   */
  public  static final class ProtobufSimpleObject extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ProtobufSimpleObject)
      ProtobufSimpleObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProtobufSimpleObject.newBuilder() to construct.
    private ProtobufSimpleObject(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProtobufSimpleObject() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ProtobufSimpleObject();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ProtobufSimpleObject(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 72: {

              c_ = input.readInt32();
              break;
            }
            case 200: {

              g_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufSimpleObject_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufSimpleObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.Builder.class);
    }

    public static final int C_FIELD_NUMBER = 9;
    private int c_;
    /**
     * <code>int32 c = 9;</code>
     */
    public int getC() {
      return c_;
    }

    public static final int G_FIELD_NUMBER = 25;
    private boolean g_;
    /**
     * <code>bool g = 25;</code>
     */
    public boolean getG() {
      return g_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (c_ != 0) {
        output.writeInt32(9, c_);
      }
      if (g_ != false) {
        output.writeBool(25, g_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (c_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, c_);
      }
      if (g_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(25, g_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject)) {
        return super.equals(obj);
      }
      com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject other = (com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject) obj;

      if (getC()
          != other.getC()) return false;
      if (getG()
          != other.getG()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + C_FIELD_NUMBER;
      hash = (53 * hash) + getC();
      hash = (37 * hash) + G_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getG());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ProtobufSimpleObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ProtobufSimpleObject)
        com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufSimpleObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufSimpleObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.class, com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.Builder.class);
      }

      // Construct using com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        c_ = 0;

        g_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.zfoo.protocol.packet.ProtobufObject.internal_static_ProtobufSimpleObject_descriptor;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject getDefaultInstanceForType() {
        return com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.getDefaultInstance();
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject build() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject buildPartial() {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject result = new com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject(this);
        result.c_ = c_;
        result.g_ = g_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject) {
          return mergeFrom((com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject other) {
        if (other == com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject.getDefaultInstance()) return this;
        if (other.getC() != 0) {
          setC(other.getC());
        }
        if (other.getG() != false) {
          setG(other.getG());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int c_ ;
      /**
       * <code>int32 c = 9;</code>
       */
      public int getC() {
        return c_;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder setC(int value) {
        
        c_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 c = 9;</code>
       */
      public Builder clearC() {
        
        c_ = 0;
        onChanged();
        return this;
      }

      private boolean g_ ;
      /**
       * <code>bool g = 25;</code>
       */
      public boolean getG() {
        return g_;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder setG(boolean value) {
        
        g_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool g = 25;</code>
       */
      public Builder clearG() {
        
        g_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ProtobufSimpleObject)
    }

    // @@protoc_insertion_point(class_scope:ProtobufSimpleObject)
    private static final com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject();
    }

    public static com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProtobufSimpleObject>
        PARSER = new com.google.protobuf.AbstractParser<ProtobufSimpleObject>() {
      @java.lang.Override
      public ProtobufSimpleObject parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ProtobufSimpleObject(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ProtobufSimpleObject> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.zfoo.protocol.packet.ProtobufObject.ProtobufSimpleObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ObjectB_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ObjectB_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ObjectA_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ObjectA_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ObjectA_MEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ObjectA_MEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListInteger_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListInteger_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListListInteger_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListListInteger_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListListListInteger_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListListListInteger_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListObjectA_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListObjectA_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListListObjectA_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListListObjectA_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MapObjectA_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapObjectA_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MapListListObjectA_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapListListObjectA_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MapIntegerString_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapIntegerString_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MapIntegerString_AEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapIntegerString_AEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListMapIntegerString_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListMapIntegerString_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MapListMapInteger_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapListMapInteger_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufComplexObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufComplexObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufComplexObject_MEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufComplexObject_MEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufComplexObject_MmEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufComplexObject_MmEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufNormalObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufNormalObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufNormalObject_MEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufNormalObject_MEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufNormalObject_MmEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufNormalObject_MmEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ProtobufSimpleObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ProtobufSimpleObject_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\013speed.proto\"\027\n\007ObjectB\022\014\n\004flag\030\001 \001(\010\"u" +
      "\n\007ObjectA\022\t\n\001a\030\001 \001(\005\022\032\n\001m\030\002 \003(\0132\017.Object" +
      "A.MEntry\022\031\n\007objectB\030\003 \001(\0132\010.ObjectB\032(\n\006M" +
      "Entry\022\013\n\003key\030\001 \001(\005\022\r\n\005value\030\002 \001(\t:\0028\001\"\030\n" +
      "\013ListInteger\022\t\n\001a\030\001 \003(\005\"*\n\017ListListInteg" +
      "er\022\027\n\001a\030\001 \003(\0132\014.ListInteger\"2\n\023ListListL" +
      "istInteger\022\033\n\001a\030\001 \003(\0132\020.ListListInteger\"" +
      "\"\n\013ListObjectA\022\023\n\001a\030\001 \003(\0132\010.ObjectA\"*\n\017L" +
      "istListObjectA\022\027\n\001a\030\001 \003(\0132\014.ListObjectA\"" +
      "@\n\nMapObjectA\022\025\n\003key\030\001 \001(\0132\010.ObjectA\022\033\n\005" +
      "value\030\002 \001(\0132\014.ListInteger\"X\n\022MapListList" +
      "ObjectA\022\035\n\003key\030\001 \001(\0132\020.ListListObjectA\022#" +
      "\n\005value\030\002 \001(\0132\024.ListListListInteger\"a\n\020M" +
      "apIntegerString\022#\n\001a\030\001 \003(\0132\030.MapIntegerS" +
      "tring.AEntry\032(\n\006AEntry\022\013\n\003key\030\001 \001(\005\022\r\n\005v" +
      "alue\030\002 \001(\t:\0028\001\"4\n\024ListMapIntegerString\022\034" +
      "\n\001a\030\001 \003(\0132\021.MapIntegerString\"]\n\021MapListM" +
      "apInteger\022\"\n\003key\030\001 \001(\0132\025.ListMapIntegerS" +
      "tring\022$\n\005value\030\002 \001(\0132\025.ListMapIntegerStr" +
      "ing\"\352\007\n\025ProtobufComplexObject\022\t\n\001a\030\001 \001(\005" +
      "\022\n\n\002aa\030\002 \001(\005\022\013\n\003aaa\030\003 \001(\014\022\014\n\004aaaa\030\004 \001(\014\022" +
      "\t\n\001b\030\005 \001(\005\022\n\n\002bb\030\006 \001(\005\022\013\n\003bbb\030\007 \001(\014\022\014\n\004b" +
      "bbb\030\010 \001(\014\022\t\n\001c\030\t \001(\005\022\n\n\002cc\030\n \001(\005\022\013\n\003ccc\030" +
      "\013 \003(\005\022\014\n\004cccc\030\014 \003(\005\022\t\n\001d\030\r \001(\003\022\n\n\002dd\030\016 \001" +
      "(\003\022\013\n\003ddd\030\017 \003(\003\022\014\n\004dddd\030\020 \003(\003\022\t\n\001e\030\021 \001(\002" +
      "\022\n\n\002ee\030\022 \001(\002\022\013\n\003eee\030\023 \003(\002\022\014\n\004eeee\030\024 \003(\002\022" +
      "\t\n\001f\030\025 \001(\001\022\n\n\002ff\030\026 \001(\001\022\013\n\003fff\030\027 \003(\001\022\014\n\004f" +
      "fff\030\030 \003(\001\022\t\n\001g\030\031 \001(\010\022\n\n\002gg\030\032 \001(\010\022\013\n\003ggg\030" +
      "\033 \003(\010\022\014\n\004gggg\030\034 \003(\010\022\t\n\001h\030\035 \001(\t\022\n\n\002hh\030\036 \001" +
      "(\t\022\013\n\003hhh\030\037 \003(\t\022\014\n\004hhhh\030  \003(\t\022\n\n\002jj\030! \001(" +
      "\t\022\013\n\003jjj\030\" \003(\t\022\024\n\002kk\030# \001(\0132\010.ObjectA\022\025\n\003" +
      "kkk\030$ \003(\0132\010.ObjectA\022\t\n\001l\030% \003(\005\022\034\n\002ll\030& \003" +
      "(\0132\020.ListListInteger\022\031\n\003lll\030\' \003(\0132\014.List" +
      "ObjectA\022\014\n\004llll\030( \003(\t\022 \n\005lllll\030) \003(\0132\021.M" +
      "apIntegerString\022(\n\001m\0303 \003(\0132\035.ProtobufCom" +
      "plexObject.MEntry\022*\n\002mm\0304 \003(\0132\036.Protobuf" +
      "ComplexObject.MmEntry\022\030\n\003mmm\0305 \003(\0132\013.Map" +
      "ObjectA\022!\n\004mmmm\0306 \003(\0132\023.MapListListObjec" +
      "tA\022!\n\005mmmmm\0307 \003(\0132\022.MapListMapInteger\022\t\n" +
      "\001s\030= \003(\005\022\034\n\002ss\030> \003(\0132\020.ListListInteger\022\031" +
      "\n\003sss\030? \003(\0132\014.ListObjectA\022\014\n\004ssss\030@ \003(\t\022" +
      " \n\005sssss\030A \003(\0132\021.MapIntegerString\032(\n\006MEn" +
      "try\022\013\n\003key\030\001 \001(\005\022\r\n\005value\030\002 \001(\t:\0028\001\0323\n\007M" +
      "mEntry\022\013\n\003key\030\001 \001(\005\022\027\n\005value\030\002 \001(\0132\010.Obj" +
      "ectA:\0028\001\"\232\003\n\024ProtobufNormalObject\022\t\n\001a\030\001" +
      " \001(\005\022\013\n\003aaa\030\003 \001(\014\022\t\n\001b\030\005 \001(\005\022\t\n\001c\030\t \001(\005\022" +
      "\t\n\001d\030\r \001(\003\022\t\n\001e\030\021 \001(\002\022\t\n\001f\030\025 \001(\001\022\t\n\001g\030\031 " +
      "\001(\010\022\n\n\002jj\030! \001(\t\022\024\n\002kk\030# \001(\0132\010.ObjectA\022\t\n" +
      "\001l\030% \003(\005\022\n\n\002ll\030& \003(\003\022\025\n\003lll\030\' \003(\0132\010.Obje" +
      "ctA\022\014\n\004llll\030( \003(\t\022\'\n\001m\0303 \003(\0132\034.ProtobufN" +
      "ormalObject.MEntry\022)\n\002mm\0304 \003(\0132\035.Protobu" +
      "fNormalObject.MmEntry\022\t\n\001s\030= \003(\005\022\014\n\004ssss" +
      "\030@ \003(\t\032(\n\006MEntry\022\013\n\003key\030\001 \001(\005\022\r\n\005value\030\002" +
      " \001(\t:\0028\001\0323\n\007MmEntry\022\013\n\003key\030\001 \001(\005\022\027\n\005valu" +
      "e\030\002 \001(\0132\010.ObjectA:\0028\001\",\n\024ProtobufSimpleO" +
      "bject\022\t\n\001c\030\t \001(\005\022\t\n\001g\030\031 \001(\010B*\n\030com.zfoo." +
      "protocol.packetB\016ProtobufObjectb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_ObjectB_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_ObjectB_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ObjectB_descriptor,
        new java.lang.String[] { "Flag", });
    internal_static_ObjectA_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_ObjectA_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ObjectA_descriptor,
        new java.lang.String[] { "A", "M", "ObjectB", });
    internal_static_ObjectA_MEntry_descriptor =
      internal_static_ObjectA_descriptor.getNestedTypes().get(0);
    internal_static_ObjectA_MEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ObjectA_MEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ListInteger_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_ListInteger_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListInteger_descriptor,
        new java.lang.String[] { "A", });
    internal_static_ListListInteger_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ListListInteger_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListListInteger_descriptor,
        new java.lang.String[] { "A", });
    internal_static_ListListListInteger_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_ListListListInteger_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListListListInteger_descriptor,
        new java.lang.String[] { "A", });
    internal_static_ListObjectA_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_ListObjectA_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListObjectA_descriptor,
        new java.lang.String[] { "A", });
    internal_static_ListListObjectA_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_ListListObjectA_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListListObjectA_descriptor,
        new java.lang.String[] { "A", });
    internal_static_MapObjectA_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_MapObjectA_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapObjectA_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_MapListListObjectA_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_MapListListObjectA_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapListListObjectA_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_MapIntegerString_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_MapIntegerString_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapIntegerString_descriptor,
        new java.lang.String[] { "A", });
    internal_static_MapIntegerString_AEntry_descriptor =
      internal_static_MapIntegerString_descriptor.getNestedTypes().get(0);
    internal_static_MapIntegerString_AEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapIntegerString_AEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ListMapIntegerString_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_ListMapIntegerString_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListMapIntegerString_descriptor,
        new java.lang.String[] { "A", });
    internal_static_MapListMapInteger_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_MapListMapInteger_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapListMapInteger_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ProtobufComplexObject_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_ProtobufComplexObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufComplexObject_descriptor,
        new java.lang.String[] { "A", "Aa", "Aaa", "Aaaa", "B", "Bb", "Bbb", "Bbbb", "C", "Cc", "Ccc", "Cccc", "D", "Dd", "Ddd", "Dddd", "E", "Ee", "Eee", "Eeee", "F", "Ff", "Fff", "Ffff", "G", "Gg", "Ggg", "Gggg", "H", "Hh", "Hhh", "Hhhh", "Jj", "Jjj", "Kk", "Kkk", "L", "Ll", "Lll", "Llll", "Lllll", "M", "Mm", "Mmm", "Mmmm", "Mmmmm", "S", "Ss", "Sss", "Ssss", "Sssss", });
    internal_static_ProtobufComplexObject_MEntry_descriptor =
      internal_static_ProtobufComplexObject_descriptor.getNestedTypes().get(0);
    internal_static_ProtobufComplexObject_MEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufComplexObject_MEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ProtobufComplexObject_MmEntry_descriptor =
      internal_static_ProtobufComplexObject_descriptor.getNestedTypes().get(1);
    internal_static_ProtobufComplexObject_MmEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufComplexObject_MmEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ProtobufNormalObject_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_ProtobufNormalObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufNormalObject_descriptor,
        new java.lang.String[] { "A", "Aaa", "B", "C", "D", "E", "F", "G", "Jj", "Kk", "L", "Ll", "Lll", "Llll", "M", "Mm", "S", "Ssss", });
    internal_static_ProtobufNormalObject_MEntry_descriptor =
      internal_static_ProtobufNormalObject_descriptor.getNestedTypes().get(0);
    internal_static_ProtobufNormalObject_MEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufNormalObject_MEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ProtobufNormalObject_MmEntry_descriptor =
      internal_static_ProtobufNormalObject_descriptor.getNestedTypes().get(1);
    internal_static_ProtobufNormalObject_MmEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufNormalObject_MmEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_ProtobufSimpleObject_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_ProtobufSimpleObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ProtobufSimpleObject_descriptor,
        new java.lang.String[] { "C", "G", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
