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

in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages Maven / Gradle / Ivy

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: in/dragonbra/javasteam/protobufs/tf/gcsdk_gcmessages.proto
// Protobuf Java Version: 4.28.0

package in.dragonbra.javasteam.protobufs.tf;

public final class GcsdkGcmessages {
  private GcsdkGcmessages() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 28,
      /* patch= */ 0,
      /* suffix= */ "",
      GcsdkGcmessages.class.getName());
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code PartnerAccountType}
   */
  public enum PartnerAccountType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * PARTNER_NONE = 0;
     */
    PARTNER_NONE(0),
    /**
     * PARTNER_PERFECT_WORLD = 1;
     */
    PARTNER_PERFECT_WORLD(1),
    /**
     * PARTNER_NEXON = 2;
     */
    PARTNER_NEXON(2),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        PartnerAccountType.class.getName());
    }
    /**
     * PARTNER_NONE = 0;
     */
    public static final int PARTNER_NONE_VALUE = 0;
    /**
     * PARTNER_PERFECT_WORLD = 1;
     */
    public static final int PARTNER_PERFECT_WORLD_VALUE = 1;
    /**
     * PARTNER_NEXON = 2;
     */
    public static final int PARTNER_NEXON_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PartnerAccountType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static PartnerAccountType forNumber(int value) {
      switch (value) {
        case 0: return PARTNER_NONE;
        case 1: return PARTNER_PERFECT_WORLD;
        case 2: return PARTNER_NEXON;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PartnerAccountType)
  }

  /**
   * Protobuf enum {@code GCConnectionStatus}
   */
  public enum GCConnectionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * GCConnectionStatus_HAVE_SESSION = 0;
     */
    GCConnectionStatus_HAVE_SESSION(0),
    /**
     * GCConnectionStatus_GC_GOING_DOWN = 1;
     */
    GCConnectionStatus_GC_GOING_DOWN(1),
    /**
     * GCConnectionStatus_NO_SESSION = 2;
     */
    GCConnectionStatus_NO_SESSION(2),
    /**
     * GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3;
     */
    GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE(3),
    /**
     * GCConnectionStatus_NO_STEAM = 4;
     */
    GCConnectionStatus_NO_STEAM(4),
    /**
     * GCConnectionStatus_SUSPENDED = 5;
     */
    GCConnectionStatus_SUSPENDED(5),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        GCConnectionStatus.class.getName());
    }
    /**
     * GCConnectionStatus_HAVE_SESSION = 0;
     */
    public static final int GCConnectionStatus_HAVE_SESSION_VALUE = 0;
    /**
     * GCConnectionStatus_GC_GOING_DOWN = 1;
     */
    public static final int GCConnectionStatus_GC_GOING_DOWN_VALUE = 1;
    /**
     * GCConnectionStatus_NO_SESSION = 2;
     */
    public static final int GCConnectionStatus_NO_SESSION_VALUE = 2;
    /**
     * GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3;
     */
    public static final int GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE_VALUE = 3;
    /**
     * GCConnectionStatus_NO_STEAM = 4;
     */
    public static final int GCConnectionStatus_NO_STEAM_VALUE = 4;
    /**
     * GCConnectionStatus_SUSPENDED = 5;
     */
    public static final int GCConnectionStatus_SUSPENDED_VALUE = 5;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static GCConnectionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static GCConnectionStatus forNumber(int value) {
      switch (value) {
        case 0: return GCConnectionStatus_HAVE_SESSION;
        case 1: return GCConnectionStatus_GC_GOING_DOWN;
        case 2: return GCConnectionStatus_NO_SESSION;
        case 3: return GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE;
        case 4: return GCConnectionStatus_NO_STEAM;
        case 5: return GCConnectionStatus_SUSPENDED;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.getDescriptor().getEnumTypes().get(1);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:GCConnectionStatus)
  }

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

    /**
     * optional uint32 type = 1;
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * optional uint32 type = 1;
     * @return The type.
     */
    int getType();

    /**
     * optional uint64 id = 2;
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * optional uint64 id = 2;
     * @return The id.
     */
    long getId();
  }
  /**
   * Protobuf type {@code CMsgSOIDOwner}
   */
  public static final class CMsgSOIDOwner extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOIDOwner)
      CMsgSOIDOwnerOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOIDOwner.class.getName());
    }
    // Use CMsgSOIDOwner.newBuilder() to construct.
    private CMsgSOIDOwner(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOIDOwner() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOIDOwner_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOIDOwner_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_ = 0;
    /**
     * optional uint32 type = 1;
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 type = 1;
     * @return The type.
     */
    @java.lang.Override
    public int getType() {
      return type_;
    }

    public static final int ID_FIELD_NUMBER = 2;
    private long id_ = 0L;
    /**
     * optional uint64 id = 2;
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint64 id = 2;
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, id_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, id_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner) obj;

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (getType()
            != other.getType()) return false;
      }
      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType();
      }
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getId());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOIDOwner}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOIDOwner)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOIDOwner_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOIDOwner_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        type_ = 0;
        id_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOIDOwner_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasId()) {
          setId(other.getId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                type_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                id_ = input.readUInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int type_ ;
      /**
       * optional uint32 type = 1;
       * @return Whether the type field is set.
       */
      @java.lang.Override
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 type = 1;
       * @return The type.
       */
      @java.lang.Override
      public int getType() {
        return type_;
      }
      /**
       * optional uint32 type = 1;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(int value) {

        type_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional uint32 type = 1;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      private long id_ ;
      /**
       * optional uint64 id = 2;
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 id = 2;
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * optional uint64 id = 2;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional uint64 id = 2;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOIDOwner)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOIDOwner)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOIDOwner parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();

    /**
     * optional int32 type_id = 2;
     * @return Whether the typeId field is set.
     */
    boolean hasTypeId();
    /**
     * optional int32 type_id = 2;
     * @return The typeId.
     */
    int getTypeId();

    /**
     * optional bytes object_data = 3;
     * @return Whether the objectData field is set.
     */
    boolean hasObjectData();
    /**
     * optional bytes object_data = 3;
     * @return The objectData.
     */
    com.google.protobuf.ByteString getObjectData();

    /**
     * optional fixed64 version = 4;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 4;
     * @return The version.
     */
    long getVersion();

    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();

    /**
     * optional uint32 service_id = 6;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 6;
     * @return The serviceId.
     */
    int getServiceId();
  }
  /**
   * Protobuf type {@code CMsgSOSingleObject}
   */
  public static final class CMsgSOSingleObject extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOSingleObject)
      CMsgSOSingleObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOSingleObject.class.getName());
    }
    // Use CMsgSOSingleObject.newBuilder() to construct.
    private CMsgSOSingleObject(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOSingleObject() {
      objectData_ = com.google.protobuf.ByteString.EMPTY;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOSingleObject_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOSingleObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.Builder.class);
    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    public static final int TYPE_ID_FIELD_NUMBER = 2;
    private int typeId_ = 0;
    /**
     * optional int32 type_id = 2;
     * @return Whether the typeId field is set.
     */
    @java.lang.Override
    public boolean hasTypeId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional int32 type_id = 2;
     * @return The typeId.
     */
    @java.lang.Override
    public int getTypeId() {
      return typeId_;
    }

    public static final int OBJECT_DATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString objectData_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * optional bytes object_data = 3;
     * @return Whether the objectData field is set.
     */
    @java.lang.Override
    public boolean hasObjectData() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional bytes object_data = 3;
     * @return The objectData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getObjectData() {
      return objectData_;
    }

    public static final int VERSION_FIELD_NUMBER = 4;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 4;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional fixed64 version = 4;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 5;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 5;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 6;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 6;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional uint32 service_id = 6;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, typeId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, objectData_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFixed64(4, version_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(5, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, serviceId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, typeId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, objectData_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(4, version_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, serviceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (hasTypeId() != other.hasTypeId()) return false;
      if (hasTypeId()) {
        if (getTypeId()
            != other.getTypeId()) return false;
      }
      if (hasObjectData() != other.hasObjectData()) return false;
      if (hasObjectData()) {
        if (!getObjectData()
            .equals(other.getObjectData())) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      if (hasTypeId()) {
        hash = (37 * hash) + TYPE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getTypeId();
      }
      if (hasObjectData()) {
        hash = (37 * hash) + OBJECT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getObjectData().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOSingleObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOSingleObject)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOSingleObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOSingleObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        typeId_ = 0;
        objectData_ = com.google.protobuf.ByteString.EMPTY;
        version_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        serviceId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOSingleObject_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.typeId_ = typeId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.objectData_ = objectData_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        if (other.hasTypeId()) {
          setTypeId(other.getTypeId());
        }
        if (other.hasObjectData()) {
          setObjectData(other.getObjectData());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 16: {
                typeId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                objectData_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 33: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000008;
                break;
              } // case 33
              case 42: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      private int typeId_ ;
      /**
       * optional int32 type_id = 2;
       * @return Whether the typeId field is set.
       */
      @java.lang.Override
      public boolean hasTypeId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional int32 type_id = 2;
       * @return The typeId.
       */
      @java.lang.Override
      public int getTypeId() {
        return typeId_;
      }
      /**
       * optional int32 type_id = 2;
       * @param value The typeId to set.
       * @return This builder for chaining.
       */
      public Builder setTypeId(int value) {

        typeId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional int32 type_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearTypeId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        typeId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString objectData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes object_data = 3;
       * @return Whether the objectData field is set.
       */
      @java.lang.Override
      public boolean hasObjectData() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional bytes object_data = 3;
       * @return The objectData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getObjectData() {
        return objectData_;
      }
      /**
       * optional bytes object_data = 3;
       * @param value The objectData to set.
       * @return This builder for chaining.
       */
      public Builder setObjectData(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        objectData_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional bytes object_data = 3;
       * @return This builder for chaining.
       */
      public Builder clearObjectData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        objectData_ = getDefaultInstance().getObjectData();
        onChanged();
        return this;
      }

      private long version_ ;
      /**
       * optional fixed64 version = 4;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional fixed64 version = 4;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 4;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 4;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        version_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 6;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * optional uint32 service_id = 6;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 6;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 6;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOSingleObject)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOSingleObject)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOSingleObject parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOSingleObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();

    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    java.util.List 
        getObjectsList();
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getObjects(int index);
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    int getObjectsCount();
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    java.util.List 
        getObjectsOrBuilderList();
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder getObjectsOrBuilder(
        int index);

    /**
     * optional fixed64 version = 3;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 3;
     * @return The version.
     */
    long getVersion();

    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();

    /**
     * optional uint32 service_id = 7;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 7;
     * @return The serviceId.
     */
    int getServiceId();
  }
  /**
   * Protobuf type {@code CMsgSOMultipleObjects}
   */
  public static final class CMsgSOMultipleObjects extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOMultipleObjects)
      CMsgSOMultipleObjectsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOMultipleObjects.class.getName());
    }
    // Use CMsgSOMultipleObjects.newBuilder() to construct.
    private CMsgSOMultipleObjects(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOMultipleObjects() {
      objects_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.Builder.class);
    }

    public interface SingleObjectOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CMsgSOMultipleObjects.SingleObject)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 type_id = 1;
       * @return Whether the typeId field is set.
       */
      boolean hasTypeId();
      /**
       * optional int32 type_id = 1;
       * @return The typeId.
       */
      int getTypeId();

      /**
       * optional bytes object_data = 2;
       * @return Whether the objectData field is set.
       */
      boolean hasObjectData();
      /**
       * optional bytes object_data = 2;
       * @return The objectData.
       */
      com.google.protobuf.ByteString getObjectData();
    }
    /**
     * Protobuf type {@code CMsgSOMultipleObjects.SingleObject}
     */
    public static final class SingleObject extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CMsgSOMultipleObjects.SingleObject)
        SingleObjectOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          SingleObject.class.getName());
      }
      // Use SingleObject.newBuilder() to construct.
      private SingleObject(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private SingleObject() {
        objectData_ = com.google.protobuf.ByteString.EMPTY;
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_SingleObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_SingleObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder.class);
      }

      private int bitField0_;
      public static final int TYPE_ID_FIELD_NUMBER = 1;
      private int typeId_ = 0;
      /**
       * optional int32 type_id = 1;
       * @return Whether the typeId field is set.
       */
      @java.lang.Override
      public boolean hasTypeId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 type_id = 1;
       * @return The typeId.
       */
      @java.lang.Override
      public int getTypeId() {
        return typeId_;
      }

      public static final int OBJECT_DATA_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString objectData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes object_data = 2;
       * @return Whether the objectData field is set.
       */
      @java.lang.Override
      public boolean hasObjectData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional bytes object_data = 2;
       * @return The objectData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getObjectData() {
        return objectData_;
      }

      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 (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt32(1, typeId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeBytes(2, objectData_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, typeId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, objectData_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject)) {
          return super.equals(obj);
        }
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject) obj;

        if (hasTypeId() != other.hasTypeId()) return false;
        if (hasTypeId()) {
          if (getTypeId()
              != other.getTypeId()) return false;
        }
        if (hasObjectData() != other.hasObjectData()) return false;
        if (hasObjectData()) {
          if (!getObjectData()
              .equals(other.getObjectData())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasTypeId()) {
          hash = (37 * hash) + TYPE_ID_FIELD_NUMBER;
          hash = (53 * hash) + getTypeId();
        }
        if (hasObjectData()) {
          hash = (37 * hash) + OBJECT_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getObjectData().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject 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.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CMsgSOMultipleObjects.SingleObject}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CMsgSOMultipleObjects.SingleObject)
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_SingleObject_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_SingleObject_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder.class);
        }

        // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          typeId_ = 0;
          objectData_ = com.google.protobuf.ByteString.EMPTY;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_SingleObject_descriptor;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getDefaultInstanceForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.getDefaultInstance();
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject build() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject buildPartial() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.typeId_ = typeId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.objectData_ = objectData_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject) {
            return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject other) {
          if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.getDefaultInstance()) return this;
          if (other.hasTypeId()) {
            setTypeId(other.getTypeId());
          }
          if (other.hasObjectData()) {
            setObjectData(other.getObjectData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  typeId_ = input.readInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  objectData_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int typeId_ ;
        /**
         * optional int32 type_id = 1;
         * @return Whether the typeId field is set.
         */
        @java.lang.Override
        public boolean hasTypeId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional int32 type_id = 1;
         * @return The typeId.
         */
        @java.lang.Override
        public int getTypeId() {
          return typeId_;
        }
        /**
         * optional int32 type_id = 1;
         * @param value The typeId to set.
         * @return This builder for chaining.
         */
        public Builder setTypeId(int value) {

          typeId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional int32 type_id = 1;
         * @return This builder for chaining.
         */
        public Builder clearTypeId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          typeId_ = 0;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString objectData_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * optional bytes object_data = 2;
         * @return Whether the objectData field is set.
         */
        @java.lang.Override
        public boolean hasObjectData() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * optional bytes object_data = 2;
         * @return The objectData.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getObjectData() {
          return objectData_;
        }
        /**
         * optional bytes object_data = 2;
         * @param value The objectData to set.
         * @return This builder for chaining.
         */
        public Builder setObjectData(com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          objectData_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * optional bytes object_data = 2;
         * @return This builder for chaining.
         */
        public Builder clearObjectData() {
          bitField0_ = (bitField0_ & ~0x00000002);
          objectData_ = getDefaultInstance().getObjectData();
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CMsgSOMultipleObjects.SingleObject)
      }

      // @@protoc_insertion_point(class_scope:CMsgSOMultipleObjects.SingleObject)
      private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject();
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public SingleObject parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    public static final int OBJECTS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List objects_;
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    @java.lang.Override
    public java.util.List getObjectsList() {
      return objects_;
    }
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    @java.lang.Override
    public java.util.List 
        getObjectsOrBuilderList() {
      return objects_;
    }
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    @java.lang.Override
    public int getObjectsCount() {
      return objects_.size();
    }
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getObjects(int index) {
      return objects_.get(index);
    }
    /**
     * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder getObjectsOrBuilder(
        int index) {
      return objects_.get(index);
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 3;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 version = 3;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 6;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 6;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 7;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 7;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional uint32 service_id = 7;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        output.writeMessage(2, objects_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(3, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(6, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(7, serviceId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, objects_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(3, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, serviceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (!getObjectsList()
          .equals(other.getObjectsList())) return false;
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      if (getObjectsCount() > 0) {
        hash = (37 * hash) + OBJECTS_FIELD_NUMBER;
        hash = (53 * hash) + getObjectsList().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOMultipleObjects}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOMultipleObjects)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjectsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getObjectsFieldBuilder();
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
        } else {
          objects_ = null;
          objectsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        serviceId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOMultipleObjects_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects result) {
        if (objectsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            objects_ = java.util.Collections.unmodifiableList(objects_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.objects_ = objects_;
        } else {
          result.objects_ = objectsBuilder_.build();
        }
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        if (objectsBuilder_ == null) {
          if (!other.objects_.isEmpty()) {
            if (objects_.isEmpty()) {
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureObjectsIsMutable();
              objects_.addAll(other.objects_);
            }
            onChanged();
          }
        } else {
          if (!other.objects_.isEmpty()) {
            if (objectsBuilder_.isEmpty()) {
              objectsBuilder_.dispose();
              objectsBuilder_ = null;
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000002);
              objectsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getObjectsFieldBuilder() : null;
            } else {
              objectsBuilder_.addAllMessages(other.objects_);
            }
          }
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 18: {
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject m =
                    input.readMessage(
                        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.parser(),
                        extensionRegistry);
                if (objectsBuilder_ == null) {
                  ensureObjectsIsMutable();
                  objects_.add(m);
                } else {
                  objectsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 25: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000004;
                break;
              } // case 25
              case 50: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 50
              case 56: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 56
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List objects_ =
        java.util.Collections.emptyList();
      private void ensureObjectsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          objects_ = new java.util.ArrayList(objects_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder> objectsBuilder_;

      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public java.util.List getObjectsList() {
        if (objectsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(objects_);
        } else {
          return objectsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public int getObjectsCount() {
        if (objectsBuilder_ == null) {
          return objects_.size();
        } else {
          return objectsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject getObjects(int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);
        } else {
          return objectsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder setObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.set(index, value);
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder setObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.set(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder addObjects(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder addObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(index, value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder addObjects(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder addObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder addAllObjects(
          java.lang.Iterable values) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, objects_);
          onChanged();
        } else {
          objectsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder clearObjects() {
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          objectsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public Builder removeObjects(int index) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.remove(index);
          onChanged();
        } else {
          objectsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder getObjectsBuilder(
          int index) {
        return getObjectsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder getObjectsOrBuilder(
          int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);  } else {
          return objectsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public java.util.List 
           getObjectsOrBuilderList() {
        if (objectsBuilder_ != null) {
          return objectsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(objects_);
        }
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder addObjectsBuilder() {
        return getObjectsFieldBuilder().addBuilder(
            in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.getDefaultInstance());
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder addObjectsBuilder(
          int index) {
        return getObjectsFieldBuilder().addBuilder(
            index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.getDefaultInstance());
      }
      /**
       * repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
       */
      public java.util.List 
           getObjectsBuilderList() {
        return getObjectsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder> 
          getObjectsFieldBuilder() {
        if (objectsBuilder_ == null) {
          objectsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObject.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects.SingleObjectOrBuilder>(
                  objects_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          objects_ = null;
        }
        return objectsBuilder_;
      }

      private long version_ ;
      /**
       * optional fixed64 version = 3;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional fixed64 version = 3;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 3;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 3;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        version_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 7;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional uint32 service_id = 7;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 7;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 7;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOMultipleObjects)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOMultipleObjects)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOMultipleObjects parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOMultipleObjects getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();

    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    java.util.List 
        getObjectsList();
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getObjects(int index);
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    int getObjectsCount();
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    java.util.List 
        getObjectsOrBuilderList();
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder getObjectsOrBuilder(
        int index);

    /**
     * optional fixed64 version = 3;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 3;
     * @return The version.
     */
    long getVersion();

    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();

    /**
     * optional uint32 service_id = 5;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 5;
     * @return The serviceId.
     */
    int getServiceId();

    /**
     * repeated uint32 service_list = 6;
     * @return A list containing the serviceList.
     */
    java.util.List getServiceListList();
    /**
     * repeated uint32 service_list = 6;
     * @return The count of serviceList.
     */
    int getServiceListCount();
    /**
     * repeated uint32 service_list = 6;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    int getServiceList(int index);

    /**
     * optional fixed64 sync_version = 7;
     * @return Whether the syncVersion field is set.
     */
    boolean hasSyncVersion();
    /**
     * optional fixed64 sync_version = 7;
     * @return The syncVersion.
     */
    long getSyncVersion();
  }
  /**
   * Protobuf type {@code CMsgSOCacheSubscribed}
   */
  public static final class CMsgSOCacheSubscribed extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheSubscribed)
      CMsgSOCacheSubscribedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheSubscribed.class.getName());
    }
    // Use CMsgSOCacheSubscribed.newBuilder() to construct.
    private CMsgSOCacheSubscribed(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheSubscribed() {
      objects_ = java.util.Collections.emptyList();
      serviceList_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.Builder.class);
    }

    public interface SubscribedTypeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CMsgSOCacheSubscribed.SubscribedType)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 type_id = 1;
       * @return Whether the typeId field is set.
       */
      boolean hasTypeId();
      /**
       * optional int32 type_id = 1;
       * @return The typeId.
       */
      int getTypeId();

      /**
       * repeated bytes object_data = 2;
       * @return A list containing the objectData.
       */
      java.util.List getObjectDataList();
      /**
       * repeated bytes object_data = 2;
       * @return The count of objectData.
       */
      int getObjectDataCount();
      /**
       * repeated bytes object_data = 2;
       * @param index The index of the element to return.
       * @return The objectData at the given index.
       */
      com.google.protobuf.ByteString getObjectData(int index);
    }
    /**
     * Protobuf type {@code CMsgSOCacheSubscribed.SubscribedType}
     */
    public static final class SubscribedType extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CMsgSOCacheSubscribed.SubscribedType)
        SubscribedTypeOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          SubscribedType.class.getName());
      }
      // Use SubscribedType.newBuilder() to construct.
      private SubscribedType(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private SubscribedType() {
        objectData_ = emptyList(com.google.protobuf.ByteString.class);
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_SubscribedType_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder.class);
      }

      private int bitField0_;
      public static final int TYPE_ID_FIELD_NUMBER = 1;
      private int typeId_ = 0;
      /**
       * optional int32 type_id = 1;
       * @return Whether the typeId field is set.
       */
      @java.lang.Override
      public boolean hasTypeId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 type_id = 1;
       * @return The typeId.
       */
      @java.lang.Override
      public int getTypeId() {
        return typeId_;
      }

      public static final int OBJECT_DATA_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private com.google.protobuf.Internal.ProtobufList objectData_ =
          emptyList(com.google.protobuf.ByteString.class);
      /**
       * repeated bytes object_data = 2;
       * @return A list containing the objectData.
       */
      @java.lang.Override
      public java.util.List
          getObjectDataList() {
        return objectData_;
      }
      /**
       * repeated bytes object_data = 2;
       * @return The count of objectData.
       */
      public int getObjectDataCount() {
        return objectData_.size();
      }
      /**
       * repeated bytes object_data = 2;
       * @param index The index of the element to return.
       * @return The objectData at the given index.
       */
      public com.google.protobuf.ByteString getObjectData(int index) {
        return objectData_.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 {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt32(1, typeId_);
        }
        for (int i = 0; i < objectData_.size(); i++) {
          output.writeBytes(2, objectData_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, typeId_);
        }
        {
          int dataSize = 0;
          for (int i = 0; i < objectData_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeBytesSizeNoTag(objectData_.get(i));
          }
          size += dataSize;
          size += 1 * getObjectDataList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType)) {
          return super.equals(obj);
        }
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType) obj;

        if (hasTypeId() != other.hasTypeId()) return false;
        if (hasTypeId()) {
          if (getTypeId()
              != other.getTypeId()) return false;
        }
        if (!getObjectDataList()
            .equals(other.getObjectDataList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasTypeId()) {
          hash = (37 * hash) + TYPE_ID_FIELD_NUMBER;
          hash = (53 * hash) + getTypeId();
        }
        if (getObjectDataCount() > 0) {
          hash = (37 * hash) + OBJECT_DATA_FIELD_NUMBER;
          hash = (53 * hash) + getObjectDataList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType 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.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CMsgSOCacheSubscribed.SubscribedType}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CMsgSOCacheSubscribed.SubscribedType)
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_SubscribedType_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder.class);
        }

        // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          typeId_ = 0;
          objectData_ = emptyList(com.google.protobuf.ByteString.class);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getDefaultInstanceForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.getDefaultInstance();
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType build() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType buildPartial() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.typeId_ = typeId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            objectData_.makeImmutable();
            result.objectData_ = objectData_;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType) {
            return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType other) {
          if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.getDefaultInstance()) return this;
          if (other.hasTypeId()) {
            setTypeId(other.getTypeId());
          }
          if (!other.objectData_.isEmpty()) {
            if (objectData_.isEmpty()) {
              objectData_ = other.objectData_;
              objectData_.makeImmutable();
              bitField0_ |= 0x00000002;
            } else {
              ensureObjectDataIsMutable();
              objectData_.addAll(other.objectData_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  typeId_ = input.readInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  com.google.protobuf.ByteString v = input.readBytes();
                  ensureObjectDataIsMutable();
                  objectData_.add(v);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int typeId_ ;
        /**
         * optional int32 type_id = 1;
         * @return Whether the typeId field is set.
         */
        @java.lang.Override
        public boolean hasTypeId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional int32 type_id = 1;
         * @return The typeId.
         */
        @java.lang.Override
        public int getTypeId() {
          return typeId_;
        }
        /**
         * optional int32 type_id = 1;
         * @param value The typeId to set.
         * @return This builder for chaining.
         */
        public Builder setTypeId(int value) {

          typeId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional int32 type_id = 1;
         * @return This builder for chaining.
         */
        public Builder clearTypeId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          typeId_ = 0;
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.ProtobufList objectData_ = emptyList(com.google.protobuf.ByteString.class);
        private void ensureObjectDataIsMutable() {
          if (!objectData_.isModifiable()) {
            objectData_ = makeMutableCopy(objectData_);
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * repeated bytes object_data = 2;
         * @return A list containing the objectData.
         */
        public java.util.List
            getObjectDataList() {
          objectData_.makeImmutable();
          return objectData_;
        }
        /**
         * repeated bytes object_data = 2;
         * @return The count of objectData.
         */
        public int getObjectDataCount() {
          return objectData_.size();
        }
        /**
         * repeated bytes object_data = 2;
         * @param index The index of the element to return.
         * @return The objectData at the given index.
         */
        public com.google.protobuf.ByteString getObjectData(int index) {
          return objectData_.get(index);
        }
        /**
         * repeated bytes object_data = 2;
         * @param index The index to set the value at.
         * @param value The objectData to set.
         * @return This builder for chaining.
         */
        public Builder setObjectData(
            int index, com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          ensureObjectDataIsMutable();
          objectData_.set(index, value);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * repeated bytes object_data = 2;
         * @param value The objectData to add.
         * @return This builder for chaining.
         */
        public Builder addObjectData(com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          ensureObjectDataIsMutable();
          objectData_.add(value);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * repeated bytes object_data = 2;
         * @param values The objectData to add.
         * @return This builder for chaining.
         */
        public Builder addAllObjectData(
            java.lang.Iterable values) {
          ensureObjectDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, objectData_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * repeated bytes object_data = 2;
         * @return This builder for chaining.
         */
        public Builder clearObjectData() {
          objectData_ = emptyList(com.google.protobuf.ByteString.class);
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CMsgSOCacheSubscribed.SubscribedType)
      }

      // @@protoc_insertion_point(class_scope:CMsgSOCacheSubscribed.SubscribedType)
      private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType();
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public SubscribedType parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    public static final int OBJECTS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List objects_;
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    @java.lang.Override
    public java.util.List getObjectsList() {
      return objects_;
    }
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    @java.lang.Override
    public java.util.List 
        getObjectsOrBuilderList() {
      return objects_;
    }
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    @java.lang.Override
    public int getObjectsCount() {
      return objects_.size();
    }
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getObjects(int index) {
      return objects_.get(index);
    }
    /**
     * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder getObjectsOrBuilder(
        int index) {
      return objects_.get(index);
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 3;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 version = 3;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 4;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 4;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 5;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 5;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional uint32 service_id = 5;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    public static final int SERVICE_LIST_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList serviceList_ =
        emptyIntList();
    /**
     * repeated uint32 service_list = 6;
     * @return A list containing the serviceList.
     */
    @java.lang.Override
    public java.util.List
        getServiceListList() {
      return serviceList_;
    }
    /**
     * repeated uint32 service_list = 6;
     * @return The count of serviceList.
     */
    public int getServiceListCount() {
      return serviceList_.size();
    }
    /**
     * repeated uint32 service_list = 6;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    public int getServiceList(int index) {
      return serviceList_.getInt(index);
    }

    public static final int SYNC_VERSION_FIELD_NUMBER = 7;
    private long syncVersion_ = 0L;
    /**
     * optional fixed64 sync_version = 7;
     * @return Whether the syncVersion field is set.
     */
    @java.lang.Override
    public boolean hasSyncVersion() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional fixed64 sync_version = 7;
     * @return The syncVersion.
     */
    @java.lang.Override
    public long getSyncVersion() {
      return syncVersion_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        output.writeMessage(2, objects_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(3, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(4, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(5, serviceId_);
      }
      for (int i = 0; i < serviceList_.size(); i++) {
        output.writeUInt32(6, serviceList_.getInt(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFixed64(7, syncVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, objects_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(3, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, serviceId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < serviceList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(serviceList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getServiceListList().size();
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(7, syncVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (!getObjectsList()
          .equals(other.getObjectsList())) return false;
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getServiceListList()
          .equals(other.getServiceListList())) return false;
      if (hasSyncVersion() != other.hasSyncVersion()) return false;
      if (hasSyncVersion()) {
        if (getSyncVersion()
            != other.getSyncVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      if (getObjectsCount() > 0) {
        hash = (37 * hash) + OBJECTS_FIELD_NUMBER;
        hash = (53 * hash) + getObjectsList().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      if (getServiceListCount() > 0) {
        hash = (37 * hash) + SERVICE_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getServiceListList().hashCode();
      }
      if (hasSyncVersion()) {
        hash = (37 * hash) + SYNC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSyncVersion());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheSubscribed}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheSubscribed)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getObjectsFieldBuilder();
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
        } else {
          objects_ = null;
          objectsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        serviceId_ = 0;
        serviceList_ = emptyIntList();
        syncVersion_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribed_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed result) {
        if (objectsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            objects_ = java.util.Collections.unmodifiableList(objects_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.objects_ = objects_;
        } else {
          result.objects_ = objectsBuilder_.build();
        }
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          serviceList_.makeImmutable();
          result.serviceList_ = serviceList_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.syncVersion_ = syncVersion_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        if (objectsBuilder_ == null) {
          if (!other.objects_.isEmpty()) {
            if (objects_.isEmpty()) {
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureObjectsIsMutable();
              objects_.addAll(other.objects_);
            }
            onChanged();
          }
        } else {
          if (!other.objects_.isEmpty()) {
            if (objectsBuilder_.isEmpty()) {
              objectsBuilder_.dispose();
              objectsBuilder_ = null;
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000002);
              objectsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getObjectsFieldBuilder() : null;
            } else {
              objectsBuilder_.addAllMessages(other.objects_);
            }
          }
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        if (!other.serviceList_.isEmpty()) {
          if (serviceList_.isEmpty()) {
            serviceList_ = other.serviceList_;
            serviceList_.makeImmutable();
            bitField0_ |= 0x00000020;
          } else {
            ensureServiceListIsMutable();
            serviceList_.addAll(other.serviceList_);
          }
          onChanged();
        }
        if (other.hasSyncVersion()) {
          setSyncVersion(other.getSyncVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 18: {
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType m =
                    input.readMessage(
                        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.parser(),
                        extensionRegistry);
                if (objectsBuilder_ == null) {
                  ensureObjectsIsMutable();
                  objects_.add(m);
                } else {
                  objectsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 25: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000004;
                break;
              } // case 25
              case 34: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                int v = input.readUInt32();
                ensureServiceListIsMutable();
                serviceList_.addInt(v);
                break;
              } // case 48
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureServiceListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  serviceList_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 50
              case 57: {
                syncVersion_ = input.readFixed64();
                bitField0_ |= 0x00000040;
                break;
              } // case 57
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List objects_ =
        java.util.Collections.emptyList();
      private void ensureObjectsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          objects_ = new java.util.ArrayList(objects_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder> objectsBuilder_;

      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public java.util.List getObjectsList() {
        if (objectsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(objects_);
        } else {
          return objectsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public int getObjectsCount() {
        if (objectsBuilder_ == null) {
          return objects_.size();
        } else {
          return objectsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType getObjects(int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);
        } else {
          return objectsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder setObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.set(index, value);
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder setObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.set(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder addObjects(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder addObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(index, value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder addObjects(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder addObjects(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder addAllObjects(
          java.lang.Iterable values) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, objects_);
          onChanged();
        } else {
          objectsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder clearObjects() {
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          objectsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public Builder removeObjects(int index) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.remove(index);
          onChanged();
        } else {
          objectsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder getObjectsBuilder(
          int index) {
        return getObjectsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder getObjectsOrBuilder(
          int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);  } else {
          return objectsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public java.util.List 
           getObjectsOrBuilderList() {
        if (objectsBuilder_ != null) {
          return objectsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(objects_);
        }
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder addObjectsBuilder() {
        return getObjectsFieldBuilder().addBuilder(
            in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.getDefaultInstance());
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder addObjectsBuilder(
          int index) {
        return getObjectsFieldBuilder().addBuilder(
            index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.getDefaultInstance());
      }
      /**
       * repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
       */
      public java.util.List 
           getObjectsBuilderList() {
        return getObjectsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder> 
          getObjectsFieldBuilder() {
        if (objectsBuilder_ == null) {
          objectsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedType.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed.SubscribedTypeOrBuilder>(
                  objects_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          objects_ = null;
        }
        return objectsBuilder_;
      }

      private long version_ ;
      /**
       * optional fixed64 version = 3;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional fixed64 version = 3;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 3;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 3;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        version_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 5;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional uint32 service_id = 5;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 5;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 5;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList serviceList_ = emptyIntList();
      private void ensureServiceListIsMutable() {
        if (!serviceList_.isModifiable()) {
          serviceList_ = makeMutableCopy(serviceList_);
        }
        bitField0_ |= 0x00000020;
      }
      /**
       * repeated uint32 service_list = 6;
       * @return A list containing the serviceList.
       */
      public java.util.List
          getServiceListList() {
        serviceList_.makeImmutable();
        return serviceList_;
      }
      /**
       * repeated uint32 service_list = 6;
       * @return The count of serviceList.
       */
      public int getServiceListCount() {
        return serviceList_.size();
      }
      /**
       * repeated uint32 service_list = 6;
       * @param index The index of the element to return.
       * @return The serviceList at the given index.
       */
      public int getServiceList(int index) {
        return serviceList_.getInt(index);
      }
      /**
       * repeated uint32 service_list = 6;
       * @param index The index to set the value at.
       * @param value The serviceList to set.
       * @return This builder for chaining.
       */
      public Builder setServiceList(
          int index, int value) {

        ensureServiceListIsMutable();
        serviceList_.setInt(index, value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 6;
       * @param value The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addServiceList(int value) {

        ensureServiceListIsMutable();
        serviceList_.addInt(value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 6;
       * @param values The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addAllServiceList(
          java.lang.Iterable values) {
        ensureServiceListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, serviceList_);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 6;
       * @return This builder for chaining.
       */
      public Builder clearServiceList() {
        serviceList_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }

      private long syncVersion_ ;
      /**
       * optional fixed64 sync_version = 7;
       * @return Whether the syncVersion field is set.
       */
      @java.lang.Override
      public boolean hasSyncVersion() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * optional fixed64 sync_version = 7;
       * @return The syncVersion.
       */
      @java.lang.Override
      public long getSyncVersion() {
        return syncVersion_;
      }
      /**
       * optional fixed64 sync_version = 7;
       * @param value The syncVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSyncVersion(long value) {

        syncVersion_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 sync_version = 7;
       * @return This builder for chaining.
       */
      public Builder clearSyncVersion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        syncVersion_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheSubscribed)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheSubscribed)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheSubscribed parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribed getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 version = 1;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 1;
     * @return The version.
     */
    long getVersion();

    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();

    /**
     * optional uint32 service_id = 3;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 3;
     * @return The serviceId.
     */
    int getServiceId();

    /**
     * repeated uint32 service_list = 4;
     * @return A list containing the serviceList.
     */
    java.util.List getServiceListList();
    /**
     * repeated uint32 service_list = 4;
     * @return The count of serviceList.
     */
    int getServiceListCount();
    /**
     * repeated uint32 service_list = 4;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    int getServiceList(int index);

    /**
     * optional fixed64 sync_version = 5;
     * @return Whether the syncVersion field is set.
     */
    boolean hasSyncVersion();
    /**
     * optional fixed64 sync_version = 5;
     * @return The syncVersion.
     */
    long getSyncVersion();
  }
  /**
   * Protobuf type {@code CMsgSOCacheSubscribedUpToDate}
   */
  public static final class CMsgSOCacheSubscribedUpToDate extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheSubscribedUpToDate)
      CMsgSOCacheSubscribedUpToDateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheSubscribedUpToDate.class.getName());
    }
    // Use CMsgSOCacheSubscribedUpToDate.newBuilder() to construct.
    private CMsgSOCacheSubscribedUpToDate(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheSubscribedUpToDate() {
      serviceList_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribedUpToDate_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribedUpToDate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.Builder.class);
    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 1;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 version = 1;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 2;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 3;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 3;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional uint32 service_id = 3;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    public static final int SERVICE_LIST_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList serviceList_ =
        emptyIntList();
    /**
     * repeated uint32 service_list = 4;
     * @return A list containing the serviceList.
     */
    @java.lang.Override
    public java.util.List
        getServiceListList() {
      return serviceList_;
    }
    /**
     * repeated uint32 service_list = 4;
     * @return The count of serviceList.
     */
    public int getServiceListCount() {
      return serviceList_.size();
    }
    /**
     * repeated uint32 service_list = 4;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    public int getServiceList(int index) {
      return serviceList_.getInt(index);
    }

    public static final int SYNC_VERSION_FIELD_NUMBER = 5;
    private long syncVersion_ = 0L;
    /**
     * optional fixed64 sync_version = 5;
     * @return Whether the syncVersion field is set.
     */
    @java.lang.Override
    public boolean hasSyncVersion() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional fixed64 sync_version = 5;
     * @return The syncVersion.
     */
    @java.lang.Override
    public long getSyncVersion() {
      return syncVersion_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, version_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, serviceId_);
      }
      for (int i = 0; i < serviceList_.size(); i++) {
        output.writeUInt32(4, serviceList_.getInt(i));
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeFixed64(5, syncVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, version_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, serviceId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < serviceList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(serviceList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getServiceListList().size();
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(5, syncVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate) obj;

      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getServiceListList()
          .equals(other.getServiceListList())) return false;
      if (hasSyncVersion() != other.hasSyncVersion()) return false;
      if (hasSyncVersion()) {
        if (getSyncVersion()
            != other.getSyncVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      if (getServiceListCount() > 0) {
        hash = (37 * hash) + SERVICE_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getServiceListList().hashCode();
      }
      if (hasSyncVersion()) {
        hash = (37 * hash) + SYNC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSyncVersion());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheSubscribedUpToDate}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheSubscribedUpToDate)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribedUpToDate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribedUpToDate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        serviceId_ = 0;
        serviceList_ = emptyIntList();
        syncVersion_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscribedUpToDate_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          serviceList_.makeImmutable();
          result.serviceList_ = serviceList_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.syncVersion_ = syncVersion_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        if (!other.serviceList_.isEmpty()) {
          if (serviceList_.isEmpty()) {
            serviceList_ = other.serviceList_;
            serviceList_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureServiceListIsMutable();
            serviceList_.addAll(other.serviceList_);
          }
          onChanged();
        }
        if (other.hasSyncVersion()) {
          setSyncVersion(other.getSyncVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 18: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int v = input.readUInt32();
                ensureServiceListIsMutable();
                serviceList_.addInt(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureServiceListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  serviceList_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 41: {
                syncVersion_ = input.readFixed64();
                bitField0_ |= 0x00000010;
                break;
              } // case 41
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long version_ ;
      /**
       * optional fixed64 version = 1;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 version = 1;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 3;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional uint32 service_id = 3;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 3;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList serviceList_ = emptyIntList();
      private void ensureServiceListIsMutable() {
        if (!serviceList_.isModifiable()) {
          serviceList_ = makeMutableCopy(serviceList_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * repeated uint32 service_list = 4;
       * @return A list containing the serviceList.
       */
      public java.util.List
          getServiceListList() {
        serviceList_.makeImmutable();
        return serviceList_;
      }
      /**
       * repeated uint32 service_list = 4;
       * @return The count of serviceList.
       */
      public int getServiceListCount() {
        return serviceList_.size();
      }
      /**
       * repeated uint32 service_list = 4;
       * @param index The index of the element to return.
       * @return The serviceList at the given index.
       */
      public int getServiceList(int index) {
        return serviceList_.getInt(index);
      }
      /**
       * repeated uint32 service_list = 4;
       * @param index The index to set the value at.
       * @param value The serviceList to set.
       * @return This builder for chaining.
       */
      public Builder setServiceList(
          int index, int value) {

        ensureServiceListIsMutable();
        serviceList_.setInt(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 4;
       * @param value The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addServiceList(int value) {

        ensureServiceListIsMutable();
        serviceList_.addInt(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 4;
       * @param values The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addAllServiceList(
          java.lang.Iterable values) {
        ensureServiceListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, serviceList_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 4;
       * @return This builder for chaining.
       */
      public Builder clearServiceList() {
        serviceList_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private long syncVersion_ ;
      /**
       * optional fixed64 sync_version = 5;
       * @return Whether the syncVersion field is set.
       */
      @java.lang.Override
      public boolean hasSyncVersion() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional fixed64 sync_version = 5;
       * @return The syncVersion.
       */
      @java.lang.Override
      public long getSyncVersion() {
        return syncVersion_;
      }
      /**
       * optional fixed64 sync_version = 5;
       * @param value The syncVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSyncVersion(long value) {

        syncVersion_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 sync_version = 5;
       * @return This builder for chaining.
       */
      public Builder clearSyncVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        syncVersion_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheSubscribedUpToDate)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheSubscribedUpToDate)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheSubscribedUpToDate parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscribedUpToDate getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();
  }
  /**
   * Protobuf type {@code CMsgSOCacheUnsubscribed}
   */
  public static final class CMsgSOCacheUnsubscribed extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheUnsubscribed)
      CMsgSOCacheUnsubscribedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheUnsubscribed.class.getName());
    }
    // Use CMsgSOCacheUnsubscribed.newBuilder() to construct.
    private CMsgSOCacheUnsubscribed(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheUnsubscribed() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheUnsubscribed_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheUnsubscribed_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.Builder.class);
    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheUnsubscribed}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheUnsubscribed)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheUnsubscribed_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheUnsubscribed_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheUnsubscribed_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheUnsubscribed)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheUnsubscribed)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheUnsubscribed parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheUnsubscribed getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();

    /**
     * optional fixed64 version = 2;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 2;
     * @return The version.
     */
    long getVersion();

    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();

    /**
     * optional uint32 service_id = 4;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 4;
     * @return The serviceId.
     */
    int getServiceId();

    /**
     * repeated uint32 service_list = 5;
     * @return A list containing the serviceList.
     */
    java.util.List getServiceListList();
    /**
     * repeated uint32 service_list = 5;
     * @return The count of serviceList.
     */
    int getServiceListCount();
    /**
     * repeated uint32 service_list = 5;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    int getServiceList(int index);

    /**
     * optional fixed64 sync_version = 6;
     * @return Whether the syncVersion field is set.
     */
    boolean hasSyncVersion();
    /**
     * optional fixed64 sync_version = 6;
     * @return The syncVersion.
     */
    long getSyncVersion();
  }
  /**
   * Protobuf type {@code CMsgSOCacheSubscriptionCheck}
   */
  public static final class CMsgSOCacheSubscriptionCheck extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheSubscriptionCheck)
      CMsgSOCacheSubscriptionCheckOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheSubscriptionCheck.class.getName());
    }
    // Use CMsgSOCacheSubscriptionCheck.newBuilder() to construct.
    private CMsgSOCacheSubscriptionCheck(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheSubscriptionCheck() {
      serviceList_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionCheck_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionCheck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.Builder.class);
    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 2;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 version = 2;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 3;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 3;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 4;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 4;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional uint32 service_id = 4;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    public static final int SERVICE_LIST_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList serviceList_ =
        emptyIntList();
    /**
     * repeated uint32 service_list = 5;
     * @return A list containing the serviceList.
     */
    @java.lang.Override
    public java.util.List
        getServiceListList() {
      return serviceList_;
    }
    /**
     * repeated uint32 service_list = 5;
     * @return The count of serviceList.
     */
    public int getServiceListCount() {
      return serviceList_.size();
    }
    /**
     * repeated uint32 service_list = 5;
     * @param index The index of the element to return.
     * @return The serviceList at the given index.
     */
    public int getServiceList(int index) {
      return serviceList_.getInt(index);
    }

    public static final int SYNC_VERSION_FIELD_NUMBER = 6;
    private long syncVersion_ = 0L;
    /**
     * optional fixed64 sync_version = 6;
     * @return Whether the syncVersion field is set.
     */
    @java.lang.Override
    public boolean hasSyncVersion() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional fixed64 sync_version = 6;
     * @return The syncVersion.
     */
    @java.lang.Override
    public long getSyncVersion() {
      return syncVersion_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(2, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, serviceId_);
      }
      for (int i = 0; i < serviceList_.size(); i++) {
        output.writeUInt32(5, serviceList_.getInt(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeFixed64(6, syncVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getOwnerSoid());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, serviceId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < serviceList_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(serviceList_.getInt(i));
        }
        size += dataSize;
        size += 1 * getServiceListList().size();
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(6, syncVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getServiceListList()
          .equals(other.getServiceListList())) return false;
      if (hasSyncVersion() != other.hasSyncVersion()) return false;
      if (hasSyncVersion()) {
        if (getSyncVersion()
            != other.getSyncVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      if (getServiceListCount() > 0) {
        hash = (37 * hash) + SERVICE_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getServiceListList().hashCode();
      }
      if (hasSyncVersion()) {
        hash = (37 * hash) + SYNC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSyncVersion());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheSubscriptionCheck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheSubscriptionCheck)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionCheck_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionCheck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        version_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        serviceId_ = 0;
        serviceList_ = emptyIntList();
        syncVersion_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionCheck_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          serviceList_.makeImmutable();
          result.serviceList_ = serviceList_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.syncVersion_ = syncVersion_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        if (!other.serviceList_.isEmpty()) {
          if (serviceList_.isEmpty()) {
            serviceList_ = other.serviceList_;
            serviceList_.makeImmutable();
            bitField0_ |= 0x00000010;
          } else {
            ensureServiceListIsMutable();
            serviceList_.addAll(other.serviceList_);
          }
          onChanged();
        }
        if (other.hasSyncVersion()) {
          setSyncVersion(other.getSyncVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 26: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int v = input.readUInt32();
                ensureServiceListIsMutable();
                serviceList_.addInt(v);
                break;
              } // case 40
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureServiceListIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  serviceList_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 42
              case 49: {
                syncVersion_ = input.readFixed64();
                bitField0_ |= 0x00000020;
                break;
              } // case 49
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      private long version_ ;
      /**
       * optional fixed64 version = 2;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed64 version = 2;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 2;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 2;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 4;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional uint32 service_id = 4;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 4;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 4;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList serviceList_ = emptyIntList();
      private void ensureServiceListIsMutable() {
        if (!serviceList_.isModifiable()) {
          serviceList_ = makeMutableCopy(serviceList_);
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * repeated uint32 service_list = 5;
       * @return A list containing the serviceList.
       */
      public java.util.List
          getServiceListList() {
        serviceList_.makeImmutable();
        return serviceList_;
      }
      /**
       * repeated uint32 service_list = 5;
       * @return The count of serviceList.
       */
      public int getServiceListCount() {
        return serviceList_.size();
      }
      /**
       * repeated uint32 service_list = 5;
       * @param index The index of the element to return.
       * @return The serviceList at the given index.
       */
      public int getServiceList(int index) {
        return serviceList_.getInt(index);
      }
      /**
       * repeated uint32 service_list = 5;
       * @param index The index to set the value at.
       * @param value The serviceList to set.
       * @return This builder for chaining.
       */
      public Builder setServiceList(
          int index, int value) {

        ensureServiceListIsMutable();
        serviceList_.setInt(index, value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 5;
       * @param value The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addServiceList(int value) {

        ensureServiceListIsMutable();
        serviceList_.addInt(value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 5;
       * @param values The serviceList to add.
       * @return This builder for chaining.
       */
      public Builder addAllServiceList(
          java.lang.Iterable values) {
        ensureServiceListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, serviceList_);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 service_list = 5;
       * @return This builder for chaining.
       */
      public Builder clearServiceList() {
        serviceList_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private long syncVersion_ ;
      /**
       * optional fixed64 sync_version = 6;
       * @return Whether the syncVersion field is set.
       */
      @java.lang.Override
      public boolean hasSyncVersion() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * optional fixed64 sync_version = 6;
       * @return The syncVersion.
       */
      @java.lang.Override
      public long getSyncVersion() {
        return syncVersion_;
      }
      /**
       * optional fixed64 sync_version = 6;
       * @param value The syncVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSyncVersion(long value) {

        syncVersion_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 sync_version = 6;
       * @return This builder for chaining.
       */
      public Builder clearSyncVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        syncVersion_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheSubscriptionCheck)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheSubscriptionCheck)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheSubscriptionCheck parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionCheck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    boolean hasOwner();
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    long getOwner();

    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return Whether the ownerSoid field is set.
     */
    boolean hasOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return The ownerSoid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid();
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder();
  }
  /**
   * Protobuf type {@code CMsgSOCacheSubscriptionRefresh}
   */
  public static final class CMsgSOCacheSubscriptionRefresh extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheSubscriptionRefresh)
      CMsgSOCacheSubscriptionRefreshOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheSubscriptionRefresh.class.getName());
    }
    // Use CMsgSOCacheSubscriptionRefresh.newBuilder() to construct.
    private CMsgSOCacheSubscriptionRefresh(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheSubscriptionRefresh() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionRefresh_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionRefresh_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.Builder.class);
    }

    private int bitField0_;
    public static final int OWNER_FIELD_NUMBER = 1;
    private long owner_ = 0L;
    /**
     * optional fixed64 owner = 1;
     * @return Whether the owner field is set.
     */
    @java.lang.Override
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 owner = 1;
     * @return The owner.
     */
    @java.lang.Override
    public long getOwner() {
      return owner_;
    }

    public static final int OWNER_SOID_FIELD_NUMBER = 2;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return Whether the ownerSoid field is set.
     */
    @java.lang.Override
    public boolean hasOwnerSoid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     * @return The ownerSoid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }
    /**
     * optional .CMsgSOIDOwner owner_soid = 2;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
      return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getOwnerSoid());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, owner_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getOwnerSoid());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh) obj;

      if (hasOwner() != other.hasOwner()) return false;
      if (hasOwner()) {
        if (getOwner()
            != other.getOwner()) return false;
      }
      if (hasOwnerSoid() != other.hasOwnerSoid()) return false;
      if (hasOwnerSoid()) {
        if (!getOwnerSoid()
            .equals(other.getOwnerSoid())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOwner()) {
        hash = (37 * hash) + OWNER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOwner());
      }
      if (hasOwnerSoid()) {
        hash = (37 * hash) + OWNER_SOID_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerSoid().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheSubscriptionRefresh}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheSubscriptionRefresh)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefreshOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionRefresh_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionRefresh_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getOwnerSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        owner_ = 0L;
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheSubscriptionRefresh_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.owner_ = owner_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ownerSoid_ = ownerSoidBuilder_ == null
              ? ownerSoid_
              : ownerSoidBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh.getDefaultInstance()) return this;
        if (other.hasOwner()) {
          setOwner(other.getOwner());
        }
        if (other.hasOwnerSoid()) {
          mergeOwnerSoid(other.getOwnerSoid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                owner_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 18: {
                input.readMessage(
                    getOwnerSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long owner_ ;
      /**
       * optional fixed64 owner = 1;
       * @return Whether the owner field is set.
       */
      @java.lang.Override
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 owner = 1;
       * @return The owner.
       */
      @java.lang.Override
      public long getOwner() {
        return owner_;
      }
      /**
       * optional fixed64 owner = 1;
       * @param value The owner to set.
       * @return This builder for chaining.
       */
      public Builder setOwner(long value) {

        owner_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 owner = 1;
       * @return This builder for chaining.
       */
      public Builder clearOwner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        owner_ = 0L;
        onChanged();
        return this;
      }

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner ownerSoid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> ownerSoidBuilder_;
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       * @return Whether the ownerSoid field is set.
       */
      public boolean hasOwnerSoid() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       * @return The ownerSoid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getOwnerSoid() {
        if (ownerSoidBuilder_ == null) {
          return ownerSoid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        } else {
          return ownerSoidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder setOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ownerSoid_ = value;
        } else {
          ownerSoidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder setOwnerSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (ownerSoidBuilder_ == null) {
          ownerSoid_ = builderForValue.build();
        } else {
          ownerSoidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder mergeOwnerSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (ownerSoidBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            ownerSoid_ != null &&
            ownerSoid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getOwnerSoidBuilder().mergeFrom(value);
          } else {
            ownerSoid_ = value;
          }
        } else {
          ownerSoidBuilder_.mergeFrom(value);
        }
        if (ownerSoid_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public Builder clearOwnerSoid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ownerSoid_ = null;
        if (ownerSoidBuilder_ != null) {
          ownerSoidBuilder_.dispose();
          ownerSoidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getOwnerSoidBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getOwnerSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getOwnerSoidOrBuilder() {
        if (ownerSoidBuilder_ != null) {
          return ownerSoidBuilder_.getMessageOrBuilder();
        } else {
          return ownerSoid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : ownerSoid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner owner_soid = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getOwnerSoidFieldBuilder() {
        if (ownerSoidBuilder_ == null) {
          ownerSoidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getOwnerSoid(),
                  getParentForChildren(),
                  isClean());
          ownerSoid_ = null;
        }
        return ownerSoidBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheSubscriptionRefresh)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheSubscriptionRefresh)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheSubscriptionRefresh parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheSubscriptionRefresh getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 version = 1;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 1;
     * @return The version.
     */
    long getVersion();
  }
  /**
   * Protobuf type {@code CMsgSOCacheVersion}
   */
  public static final class CMsgSOCacheVersion extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheVersion)
      CMsgSOCacheVersionOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheVersion.class.getName());
    }
    // Use CMsgSOCacheVersion.newBuilder() to construct.
    private CMsgSOCacheVersion(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheVersion() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheVersion_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheVersion_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.Builder.class);
    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 1;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 version = 1;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, version_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, version_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion) obj;

      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheVersion}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheVersion)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheVersion_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheVersion_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheVersion_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long version_ ;
      /**
       * optional fixed64 version = 1;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 version = 1;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheVersion)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheVersion)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheVersion parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheVersion getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional uint32 msgtype = 1;
     * @return Whether the msgtype field is set.
     */
    boolean hasMsgtype();
    /**
     * optional uint32 msgtype = 1;
     * @return The msgtype.
     */
    int getMsgtype();

    /**
     * optional bytes payload = 2;
     * @return Whether the payload field is set.
     */
    boolean hasPayload();
    /**
     * optional bytes payload = 2;
     * @return The payload.
     */
    com.google.protobuf.ByteString getPayload();

    /**
     * repeated fixed64 steamids = 3;
     * @return A list containing the steamids.
     */
    java.util.List getSteamidsList();
    /**
     * repeated fixed64 steamids = 3;
     * @return The count of steamids.
     */
    int getSteamidsCount();
    /**
     * repeated fixed64 steamids = 3;
     * @param index The index of the element to return.
     * @return The steamids at the given index.
     */
    long getSteamids(int index);
  }
  /**
   * Protobuf type {@code CMsgGCMultiplexMessage}
   */
  public static final class CMsgGCMultiplexMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCMultiplexMessage)
      CMsgGCMultiplexMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCMultiplexMessage.class.getName());
    }
    // Use CMsgGCMultiplexMessage.newBuilder() to construct.
    private CMsgGCMultiplexMessage(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCMultiplexMessage() {
      payload_ = com.google.protobuf.ByteString.EMPTY;
      steamids_ = emptyLongList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCMultiplexMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCMultiplexMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.Builder.class);
    }

    private int bitField0_;
    public static final int MSGTYPE_FIELD_NUMBER = 1;
    private int msgtype_ = 0;
    /**
     * optional uint32 msgtype = 1;
     * @return Whether the msgtype field is set.
     */
    @java.lang.Override
    public boolean hasMsgtype() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 msgtype = 1;
     * @return The msgtype.
     */
    @java.lang.Override
    public int getMsgtype() {
      return msgtype_;
    }

    public static final int PAYLOAD_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * optional bytes payload = 2;
     * @return Whether the payload field is set.
     */
    @java.lang.Override
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional bytes payload = 2;
     * @return The payload.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getPayload() {
      return payload_;
    }

    public static final int STEAMIDS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList steamids_ =
        emptyLongList();
    /**
     * repeated fixed64 steamids = 3;
     * @return A list containing the steamids.
     */
    @java.lang.Override
    public java.util.List
        getSteamidsList() {
      return steamids_;
    }
    /**
     * repeated fixed64 steamids = 3;
     * @return The count of steamids.
     */
    public int getSteamidsCount() {
      return steamids_.size();
    }
    /**
     * repeated fixed64 steamids = 3;
     * @param index The index of the element to return.
     * @return The steamids at the given index.
     */
    public long getSteamids(int index) {
      return steamids_.getLong(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 {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, msgtype_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, payload_);
      }
      for (int i = 0; i < steamids_.size(); i++) {
        output.writeFixed64(3, steamids_.getLong(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, msgtype_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, payload_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getSteamidsList().size();
        size += dataSize;
        size += 1 * getSteamidsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage) obj;

      if (hasMsgtype() != other.hasMsgtype()) return false;
      if (hasMsgtype()) {
        if (getMsgtype()
            != other.getMsgtype()) return false;
      }
      if (hasPayload() != other.hasPayload()) return false;
      if (hasPayload()) {
        if (!getPayload()
            .equals(other.getPayload())) return false;
      }
      if (!getSteamidsList()
          .equals(other.getSteamidsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMsgtype()) {
        hash = (37 * hash) + MSGTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMsgtype();
      }
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      if (getSteamidsCount() > 0) {
        hash = (37 * hash) + STEAMIDS_FIELD_NUMBER;
        hash = (53 * hash) + getSteamidsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCMultiplexMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCMultiplexMessage)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCMultiplexMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCMultiplexMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        msgtype_ = 0;
        payload_ = com.google.protobuf.ByteString.EMPTY;
        steamids_ = emptyLongList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCMultiplexMessage_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.msgtype_ = msgtype_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.payload_ = payload_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          steamids_.makeImmutable();
          result.steamids_ = steamids_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage.getDefaultInstance()) return this;
        if (other.hasMsgtype()) {
          setMsgtype(other.getMsgtype());
        }
        if (other.hasPayload()) {
          setPayload(other.getPayload());
        }
        if (!other.steamids_.isEmpty()) {
          if (steamids_.isEmpty()) {
            steamids_ = other.steamids_;
            steamids_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureSteamidsIsMutable();
            steamids_.addAll(other.steamids_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                msgtype_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                payload_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 25: {
                long v = input.readFixed64();
                ensureSteamidsIsMutable();
                steamids_.addLong(v);
                break;
              } // case 25
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureSteamidsIsMutable(alloc / 8);
                while (input.getBytesUntilLimit() > 0) {
                  steamids_.addLong(input.readFixed64());
                }
                input.popLimit(limit);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int msgtype_ ;
      /**
       * optional uint32 msgtype = 1;
       * @return Whether the msgtype field is set.
       */
      @java.lang.Override
      public boolean hasMsgtype() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 msgtype = 1;
       * @return The msgtype.
       */
      @java.lang.Override
      public int getMsgtype() {
        return msgtype_;
      }
      /**
       * optional uint32 msgtype = 1;
       * @param value The msgtype to set.
       * @return This builder for chaining.
       */
      public Builder setMsgtype(int value) {

        msgtype_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional uint32 msgtype = 1;
       * @return This builder for chaining.
       */
      public Builder clearMsgtype() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgtype_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes payload = 2;
       * @return Whether the payload field is set.
       */
      @java.lang.Override
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional bytes payload = 2;
       * @return The payload.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getPayload() {
        return payload_;
      }
      /**
       * optional bytes payload = 2;
       * @param value The payload to set.
       * @return This builder for chaining.
       */
      public Builder setPayload(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        payload_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional bytes payload = 2;
       * @return This builder for chaining.
       */
      public Builder clearPayload() {
        bitField0_ = (bitField0_ & ~0x00000002);
        payload_ = getDefaultInstance().getPayload();
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList steamids_ = emptyLongList();
      private void ensureSteamidsIsMutable() {
        if (!steamids_.isModifiable()) {
          steamids_ = makeMutableCopy(steamids_);
        }
        bitField0_ |= 0x00000004;
      }
      private void ensureSteamidsIsMutable(int capacity) {
        if (!steamids_.isModifiable()) {
          steamids_ = makeMutableCopy(steamids_, capacity);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * repeated fixed64 steamids = 3;
       * @return A list containing the steamids.
       */
      public java.util.List
          getSteamidsList() {
        steamids_.makeImmutable();
        return steamids_;
      }
      /**
       * repeated fixed64 steamids = 3;
       * @return The count of steamids.
       */
      public int getSteamidsCount() {
        return steamids_.size();
      }
      /**
       * repeated fixed64 steamids = 3;
       * @param index The index of the element to return.
       * @return The steamids at the given index.
       */
      public long getSteamids(int index) {
        return steamids_.getLong(index);
      }
      /**
       * repeated fixed64 steamids = 3;
       * @param index The index to set the value at.
       * @param value The steamids to set.
       * @return This builder for chaining.
       */
      public Builder setSteamids(
          int index, long value) {

        ensureSteamidsIsMutable();
        steamids_.setLong(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated fixed64 steamids = 3;
       * @param value The steamids to add.
       * @return This builder for chaining.
       */
      public Builder addSteamids(long value) {

        ensureSteamidsIsMutable();
        steamids_.addLong(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated fixed64 steamids = 3;
       * @param values The steamids to add.
       * @return This builder for chaining.
       */
      public Builder addAllSteamids(
          java.lang.Iterable values) {
        ensureSteamidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, steamids_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated fixed64 steamids = 3;
       * @return This builder for chaining.
       */
      public Builder clearSteamids() {
        steamids_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCMultiplexMessage)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCMultiplexMessage)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCMultiplexMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCMultiplexMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional uint32 dir_index = 1;
     * @return Whether the dirIndex field is set.
     */
    boolean hasDirIndex();
    /**
     * optional uint32 dir_index = 1;
     * @return The dirIndex.
     */
    int getDirIndex();

    /**
     * optional string machine_name = 3;
     * @return Whether the machineName field is set.
     */
    boolean hasMachineName();
    /**
     * optional string machine_name = 3;
     * @return The machineName.
     */
    java.lang.String getMachineName();
    /**
     * optional string machine_name = 3;
     * @return The bytes for machineName.
     */
    com.google.protobuf.ByteString
        getMachineNameBytes();

    /**
     * optional string process_name = 4;
     * @return Whether the processName field is set.
     */
    boolean hasProcessName();
    /**
     * optional string process_name = 4;
     * @return The processName.
     */
    java.lang.String getProcessName();
    /**
     * optional string process_name = 4;
     * @return The bytes for processName.
     */
    com.google.protobuf.ByteString
        getProcessNameBytes();

    /**
     * repeated uint32 type_instances = 5;
     * @return A list containing the typeInstances.
     */
    java.util.List getTypeInstancesList();
    /**
     * repeated uint32 type_instances = 5;
     * @return The count of typeInstances.
     */
    int getTypeInstancesCount();
    /**
     * repeated uint32 type_instances = 5;
     * @param index The index of the element to return.
     * @return The typeInstances at the given index.
     */
    int getTypeInstances(int index);
  }
  /**
   * Protobuf type {@code CGCToGCMsgMasterAck}
   */
  public static final class CGCToGCMsgMasterAck extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGCToGCMsgMasterAck)
      CGCToGCMsgMasterAckOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CGCToGCMsgMasterAck.class.getName());
    }
    // Use CGCToGCMsgMasterAck.newBuilder() to construct.
    private CGCToGCMsgMasterAck(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CGCToGCMsgMasterAck() {
      machineName_ = "";
      processName_ = "";
      typeInstances_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.Builder.class);
    }

    private int bitField0_;
    public static final int DIR_INDEX_FIELD_NUMBER = 1;
    private int dirIndex_ = 0;
    /**
     * optional uint32 dir_index = 1;
     * @return Whether the dirIndex field is set.
     */
    @java.lang.Override
    public boolean hasDirIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 dir_index = 1;
     * @return The dirIndex.
     */
    @java.lang.Override
    public int getDirIndex() {
      return dirIndex_;
    }

    public static final int MACHINE_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object machineName_ = "";
    /**
     * optional string machine_name = 3;
     * @return Whether the machineName field is set.
     */
    @java.lang.Override
    public boolean hasMachineName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string machine_name = 3;
     * @return The machineName.
     */
    @java.lang.Override
    public java.lang.String getMachineName() {
      java.lang.Object ref = machineName_;
      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();
        if (bs.isValidUtf8()) {
          machineName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string machine_name = 3;
     * @return The bytes for machineName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMachineNameBytes() {
      java.lang.Object ref = machineName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        machineName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROCESS_NAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object processName_ = "";
    /**
     * optional string process_name = 4;
     * @return Whether the processName field is set.
     */
    @java.lang.Override
    public boolean hasProcessName() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string process_name = 4;
     * @return The processName.
     */
    @java.lang.Override
    public java.lang.String getProcessName() {
      java.lang.Object ref = processName_;
      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();
        if (bs.isValidUtf8()) {
          processName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string process_name = 4;
     * @return The bytes for processName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProcessNameBytes() {
      java.lang.Object ref = processName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        processName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_INSTANCES_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList typeInstances_ =
        emptyIntList();
    /**
     * repeated uint32 type_instances = 5;
     * @return A list containing the typeInstances.
     */
    @java.lang.Override
    public java.util.List
        getTypeInstancesList() {
      return typeInstances_;
    }
    /**
     * repeated uint32 type_instances = 5;
     * @return The count of typeInstances.
     */
    public int getTypeInstancesCount() {
      return typeInstances_.size();
    }
    /**
     * repeated uint32 type_instances = 5;
     * @param index The index of the element to return.
     * @return The typeInstances at the given index.
     */
    public int getTypeInstances(int index) {
      return typeInstances_.getInt(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 {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, dirIndex_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, machineName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, processName_);
      }
      for (int i = 0; i < typeInstances_.size(); i++) {
        output.writeUInt32(5, typeInstances_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, dirIndex_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, machineName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, processName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < typeInstances_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(typeInstances_.getInt(i));
        }
        size += dataSize;
        size += 1 * getTypeInstancesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck) obj;

      if (hasDirIndex() != other.hasDirIndex()) return false;
      if (hasDirIndex()) {
        if (getDirIndex()
            != other.getDirIndex()) return false;
      }
      if (hasMachineName() != other.hasMachineName()) return false;
      if (hasMachineName()) {
        if (!getMachineName()
            .equals(other.getMachineName())) return false;
      }
      if (hasProcessName() != other.hasProcessName()) return false;
      if (hasProcessName()) {
        if (!getProcessName()
            .equals(other.getProcessName())) return false;
      }
      if (!getTypeInstancesList()
          .equals(other.getTypeInstancesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDirIndex()) {
        hash = (37 * hash) + DIR_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getDirIndex();
      }
      if (hasMachineName()) {
        hash = (37 * hash) + MACHINE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMachineName().hashCode();
      }
      if (hasProcessName()) {
        hash = (37 * hash) + PROCESS_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getProcessName().hashCode();
      }
      if (getTypeInstancesCount() > 0) {
        hash = (37 * hash) + TYPE_INSTANCES_FIELD_NUMBER;
        hash = (53 * hash) + getTypeInstancesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGCToGCMsgMasterAck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGCToGCMsgMasterAck)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        dirIndex_ = 0;
        machineName_ = "";
        processName_ = "";
        typeInstances_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.dirIndex_ = dirIndex_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.machineName_ = machineName_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.processName_ = processName_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          typeInstances_.makeImmutable();
          result.typeInstances_ = typeInstances_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck.getDefaultInstance()) return this;
        if (other.hasDirIndex()) {
          setDirIndex(other.getDirIndex());
        }
        if (other.hasMachineName()) {
          machineName_ = other.machineName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasProcessName()) {
          processName_ = other.processName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.typeInstances_.isEmpty()) {
          if (typeInstances_.isEmpty()) {
            typeInstances_ = other.typeInstances_;
            typeInstances_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureTypeInstancesIsMutable();
            typeInstances_.addAll(other.typeInstances_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                dirIndex_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 26: {
                machineName_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 26
              case 34: {
                processName_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 34
              case 40: {
                int v = input.readUInt32();
                ensureTypeInstancesIsMutable();
                typeInstances_.addInt(v);
                break;
              } // case 40
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureTypeInstancesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  typeInstances_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int dirIndex_ ;
      /**
       * optional uint32 dir_index = 1;
       * @return Whether the dirIndex field is set.
       */
      @java.lang.Override
      public boolean hasDirIndex() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 dir_index = 1;
       * @return The dirIndex.
       */
      @java.lang.Override
      public int getDirIndex() {
        return dirIndex_;
      }
      /**
       * optional uint32 dir_index = 1;
       * @param value The dirIndex to set.
       * @return This builder for chaining.
       */
      public Builder setDirIndex(int value) {

        dirIndex_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional uint32 dir_index = 1;
       * @return This builder for chaining.
       */
      public Builder clearDirIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        dirIndex_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object machineName_ = "";
      /**
       * optional string machine_name = 3;
       * @return Whether the machineName field is set.
       */
      public boolean hasMachineName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string machine_name = 3;
       * @return The machineName.
       */
      public java.lang.String getMachineName() {
        java.lang.Object ref = machineName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            machineName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string machine_name = 3;
       * @return The bytes for machineName.
       */
      public com.google.protobuf.ByteString
          getMachineNameBytes() {
        java.lang.Object ref = machineName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          machineName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string machine_name = 3;
       * @param value The machineName to set.
       * @return This builder for chaining.
       */
      public Builder setMachineName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        machineName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional string machine_name = 3;
       * @return This builder for chaining.
       */
      public Builder clearMachineName() {
        machineName_ = getDefaultInstance().getMachineName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * optional string machine_name = 3;
       * @param value The bytes for machineName to set.
       * @return This builder for chaining.
       */
      public Builder setMachineNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        machineName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object processName_ = "";
      /**
       * optional string process_name = 4;
       * @return Whether the processName field is set.
       */
      public boolean hasProcessName() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string process_name = 4;
       * @return The processName.
       */
      public java.lang.String getProcessName() {
        java.lang.Object ref = processName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            processName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string process_name = 4;
       * @return The bytes for processName.
       */
      public com.google.protobuf.ByteString
          getProcessNameBytes() {
        java.lang.Object ref = processName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          processName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string process_name = 4;
       * @param value The processName to set.
       * @return This builder for chaining.
       */
      public Builder setProcessName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        processName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional string process_name = 4;
       * @return This builder for chaining.
       */
      public Builder clearProcessName() {
        processName_ = getDefaultInstance().getProcessName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * optional string process_name = 4;
       * @param value The bytes for processName to set.
       * @return This builder for chaining.
       */
      public Builder setProcessNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        processName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList typeInstances_ = emptyIntList();
      private void ensureTypeInstancesIsMutable() {
        if (!typeInstances_.isModifiable()) {
          typeInstances_ = makeMutableCopy(typeInstances_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * repeated uint32 type_instances = 5;
       * @return A list containing the typeInstances.
       */
      public java.util.List
          getTypeInstancesList() {
        typeInstances_.makeImmutable();
        return typeInstances_;
      }
      /**
       * repeated uint32 type_instances = 5;
       * @return The count of typeInstances.
       */
      public int getTypeInstancesCount() {
        return typeInstances_.size();
      }
      /**
       * repeated uint32 type_instances = 5;
       * @param index The index of the element to return.
       * @return The typeInstances at the given index.
       */
      public int getTypeInstances(int index) {
        return typeInstances_.getInt(index);
      }
      /**
       * repeated uint32 type_instances = 5;
       * @param index The index to set the value at.
       * @param value The typeInstances to set.
       * @return This builder for chaining.
       */
      public Builder setTypeInstances(
          int index, int value) {

        ensureTypeInstancesIsMutable();
        typeInstances_.setInt(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 type_instances = 5;
       * @param value The typeInstances to add.
       * @return This builder for chaining.
       */
      public Builder addTypeInstances(int value) {

        ensureTypeInstancesIsMutable();
        typeInstances_.addInt(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 type_instances = 5;
       * @param values The typeInstances to add.
       * @return This builder for chaining.
       */
      public Builder addAllTypeInstances(
          java.lang.Iterable values) {
        ensureTypeInstancesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, typeInstances_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * repeated uint32 type_instances = 5;
       * @return This builder for chaining.
       */
      public Builder clearTypeInstances() {
        typeInstances_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CGCToGCMsgMasterAck)
    }

    // @@protoc_insertion_point(class_scope:CGCToGCMsgMasterAck)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CGCToGCMsgMasterAck parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional int32 eresult = 1 [default = 2];
     * @return Whether the eresult field is set.
     */
    boolean hasEresult();
    /**
     * optional int32 eresult = 1 [default = 2];
     * @return The eresult.
     */
    int getEresult();
  }
  /**
   * Protobuf type {@code CGCToGCMsgMasterAck_Response}
   */
  public static final class CGCToGCMsgMasterAck_Response extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGCToGCMsgMasterAck_Response)
      CGCToGCMsgMasterAck_ResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CGCToGCMsgMasterAck_Response.class.getName());
    }
    // Use CGCToGCMsgMasterAck_Response.newBuilder() to construct.
    private CGCToGCMsgMasterAck_Response(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CGCToGCMsgMasterAck_Response() {
      eresult_ = 2;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_Response_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_Response_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.Builder.class);
    }

    private int bitField0_;
    public static final int ERESULT_FIELD_NUMBER = 1;
    private int eresult_ = 2;
    /**
     * optional int32 eresult = 1 [default = 2];
     * @return Whether the eresult field is set.
     */
    @java.lang.Override
    public boolean hasEresult() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional int32 eresult = 1 [default = 2];
     * @return The eresult.
     */
    @java.lang.Override
    public int getEresult() {
      return eresult_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, eresult_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, eresult_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response) obj;

      if (hasEresult() != other.hasEresult()) return false;
      if (hasEresult()) {
        if (getEresult()
            != other.getEresult()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEresult()) {
        hash = (37 * hash) + ERESULT_FIELD_NUMBER;
        hash = (53 * hash) + getEresult();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGCToGCMsgMasterAck_Response}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGCToGCMsgMasterAck_Response)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_ResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        eresult_ = 2;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterAck_Response_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.eresult_ = eresult_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response.getDefaultInstance()) return this;
        if (other.hasEresult()) {
          setEresult(other.getEresult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                eresult_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int eresult_ = 2;
      /**
       * optional int32 eresult = 1 [default = 2];
       * @return Whether the eresult field is set.
       */
      @java.lang.Override
      public boolean hasEresult() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 eresult = 1 [default = 2];
       * @return The eresult.
       */
      @java.lang.Override
      public int getEresult() {
        return eresult_;
      }
      /**
       * optional int32 eresult = 1 [default = 2];
       * @param value The eresult to set.
       * @return This builder for chaining.
       */
      public Builder setEresult(int value) {

        eresult_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional int32 eresult = 1 [default = 2];
       * @return This builder for chaining.
       */
      public Builder clearEresult() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eresult_ = 2;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CGCToGCMsgMasterAck_Response)
    }

    // @@protoc_insertion_point(class_scope:CGCToGCMsgMasterAck_Response)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CGCToGCMsgMasterAck_Response parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterAck_Response getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    java.util.List 
        getGcInfoList();
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getGcInfo(int index);
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    int getGcInfoCount();
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    java.util.List 
        getGcInfoOrBuilderList();
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder getGcInfoOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CGCToGCMsgMasterStartupComplete}
   */
  public static final class CGCToGCMsgMasterStartupComplete extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGCToGCMsgMasterStartupComplete)
      CGCToGCMsgMasterStartupCompleteOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CGCToGCMsgMasterStartupComplete.class.getName());
    }
    // Use CGCToGCMsgMasterStartupComplete.newBuilder() to construct.
    private CGCToGCMsgMasterStartupComplete(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CGCToGCMsgMasterStartupComplete() {
      gcInfo_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.Builder.class);
    }

    public interface GCInfoOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CGCToGCMsgMasterStartupComplete.GCInfo)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 dir_index = 1;
       * @return Whether the dirIndex field is set.
       */
      boolean hasDirIndex();
      /**
       * optional uint32 dir_index = 1;
       * @return The dirIndex.
       */
      int getDirIndex();

      /**
       * optional string machine_name = 2;
       * @return Whether the machineName field is set.
       */
      boolean hasMachineName();
      /**
       * optional string machine_name = 2;
       * @return The machineName.
       */
      java.lang.String getMachineName();
      /**
       * optional string machine_name = 2;
       * @return The bytes for machineName.
       */
      com.google.protobuf.ByteString
          getMachineNameBytes();
    }
    /**
     * Protobuf type {@code CGCToGCMsgMasterStartupComplete.GCInfo}
     */
    public static final class GCInfo extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CGCToGCMsgMasterStartupComplete.GCInfo)
        GCInfoOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          GCInfo.class.getName());
      }
      // Use GCInfo.newBuilder() to construct.
      private GCInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private GCInfo() {
        machineName_ = "";
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder.class);
      }

      private int bitField0_;
      public static final int DIR_INDEX_FIELD_NUMBER = 1;
      private int dirIndex_ = 0;
      /**
       * optional uint32 dir_index = 1;
       * @return Whether the dirIndex field is set.
       */
      @java.lang.Override
      public boolean hasDirIndex() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 dir_index = 1;
       * @return The dirIndex.
       */
      @java.lang.Override
      public int getDirIndex() {
        return dirIndex_;
      }

      public static final int MACHINE_NAME_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object machineName_ = "";
      /**
       * optional string machine_name = 2;
       * @return Whether the machineName field is set.
       */
      @java.lang.Override
      public boolean hasMachineName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string machine_name = 2;
       * @return The machineName.
       */
      @java.lang.Override
      public java.lang.String getMachineName() {
        java.lang.Object ref = machineName_;
        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();
          if (bs.isValidUtf8()) {
            machineName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string machine_name = 2;
       * @return The bytes for machineName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMachineNameBytes() {
        java.lang.Object ref = machineName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          machineName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      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 (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, dirIndex_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          com.google.protobuf.GeneratedMessage.writeString(output, 2, machineName_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, dirIndex_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.GeneratedMessage.computeStringSize(2, machineName_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo)) {
          return super.equals(obj);
        }
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo) obj;

        if (hasDirIndex() != other.hasDirIndex()) return false;
        if (hasDirIndex()) {
          if (getDirIndex()
              != other.getDirIndex()) return false;
        }
        if (hasMachineName() != other.hasMachineName()) return false;
        if (hasMachineName()) {
          if (!getMachineName()
              .equals(other.getMachineName())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasDirIndex()) {
          hash = (37 * hash) + DIR_INDEX_FIELD_NUMBER;
          hash = (53 * hash) + getDirIndex();
        }
        if (hasMachineName()) {
          hash = (37 * hash) + MACHINE_NAME_FIELD_NUMBER;
          hash = (53 * hash) + getMachineName().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo 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.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CGCToGCMsgMasterStartupComplete.GCInfo}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CGCToGCMsgMasterStartupComplete.GCInfo)
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder.class);
        }

        // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          dirIndex_ = 0;
          machineName_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getDefaultInstanceForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.getDefaultInstance();
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo build() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo buildPartial() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.dirIndex_ = dirIndex_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.machineName_ = machineName_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo) {
            return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo other) {
          if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.getDefaultInstance()) return this;
          if (other.hasDirIndex()) {
            setDirIndex(other.getDirIndex());
          }
          if (other.hasMachineName()) {
            machineName_ = other.machineName_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  dirIndex_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  machineName_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int dirIndex_ ;
        /**
         * optional uint32 dir_index = 1;
         * @return Whether the dirIndex field is set.
         */
        @java.lang.Override
        public boolean hasDirIndex() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional uint32 dir_index = 1;
         * @return The dirIndex.
         */
        @java.lang.Override
        public int getDirIndex() {
          return dirIndex_;
        }
        /**
         * optional uint32 dir_index = 1;
         * @param value The dirIndex to set.
         * @return This builder for chaining.
         */
        public Builder setDirIndex(int value) {

          dirIndex_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional uint32 dir_index = 1;
         * @return This builder for chaining.
         */
        public Builder clearDirIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          dirIndex_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object machineName_ = "";
        /**
         * optional string machine_name = 2;
         * @return Whether the machineName field is set.
         */
        public boolean hasMachineName() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * optional string machine_name = 2;
         * @return The machineName.
         */
        public java.lang.String getMachineName() {
          java.lang.Object ref = machineName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              machineName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string machine_name = 2;
         * @return The bytes for machineName.
         */
        public com.google.protobuf.ByteString
            getMachineNameBytes() {
          java.lang.Object ref = machineName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            machineName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string machine_name = 2;
         * @param value The machineName to set.
         * @return This builder for chaining.
         */
        public Builder setMachineName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          machineName_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * optional string machine_name = 2;
         * @return This builder for chaining.
         */
        public Builder clearMachineName() {
          machineName_ = getDefaultInstance().getMachineName();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * optional string machine_name = 2;
         * @param value The bytes for machineName to set.
         * @return This builder for chaining.
         */
        public Builder setMachineNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          machineName_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CGCToGCMsgMasterStartupComplete.GCInfo)
      }

      // @@protoc_insertion_point(class_scope:CGCToGCMsgMasterStartupComplete.GCInfo)
      private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo();
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public GCInfo parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int GC_INFO_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List gcInfo_;
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    @java.lang.Override
    public java.util.List getGcInfoList() {
      return gcInfo_;
    }
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    @java.lang.Override
    public java.util.List 
        getGcInfoOrBuilderList() {
      return gcInfo_;
    }
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    @java.lang.Override
    public int getGcInfoCount() {
      return gcInfo_.size();
    }
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getGcInfo(int index) {
      return gcInfo_.get(index);
    }
    /**
     * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder getGcInfoOrBuilder(
        int index) {
      return gcInfo_.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 < gcInfo_.size(); i++) {
        output.writeMessage(1, gcInfo_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete) obj;

      if (!getGcInfoList()
          .equals(other.getGcInfoList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getGcInfoCount() > 0) {
        hash = (37 * hash) + GC_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getGcInfoList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGCToGCMsgMasterStartupComplete}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGCToGCMsgMasterStartupComplete)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupCompleteOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (gcInfoBuilder_ == null) {
          gcInfo_ = java.util.Collections.emptyList();
        } else {
          gcInfo_ = null;
          gcInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgMasterStartupComplete_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete result) {
        if (gcInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            gcInfo_ = java.util.Collections.unmodifiableList(gcInfo_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.gcInfo_ = gcInfo_;
        } else {
          result.gcInfo_ = gcInfoBuilder_.build();
        }
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.getDefaultInstance()) return this;
        if (gcInfoBuilder_ == null) {
          if (!other.gcInfo_.isEmpty()) {
            if (gcInfo_.isEmpty()) {
              gcInfo_ = other.gcInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureGcInfoIsMutable();
              gcInfo_.addAll(other.gcInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.gcInfo_.isEmpty()) {
            if (gcInfoBuilder_.isEmpty()) {
              gcInfoBuilder_.dispose();
              gcInfoBuilder_ = null;
              gcInfo_ = other.gcInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
              gcInfoBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getGcInfoFieldBuilder() : null;
            } else {
              gcInfoBuilder_.addAllMessages(other.gcInfo_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo m =
                    input.readMessage(
                        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.parser(),
                        extensionRegistry);
                if (gcInfoBuilder_ == null) {
                  ensureGcInfoIsMutable();
                  gcInfo_.add(m);
                } else {
                  gcInfoBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List gcInfo_ =
        java.util.Collections.emptyList();
      private void ensureGcInfoIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          gcInfo_ = new java.util.ArrayList(gcInfo_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder> gcInfoBuilder_;

      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public java.util.List getGcInfoList() {
        if (gcInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(gcInfo_);
        } else {
          return gcInfoBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public int getGcInfoCount() {
        if (gcInfoBuilder_ == null) {
          return gcInfo_.size();
        } else {
          return gcInfoBuilder_.getCount();
        }
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo getGcInfo(int index) {
        if (gcInfoBuilder_ == null) {
          return gcInfo_.get(index);
        } else {
          return gcInfoBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder setGcInfo(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo value) {
        if (gcInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGcInfoIsMutable();
          gcInfo_.set(index, value);
          onChanged();
        } else {
          gcInfoBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder setGcInfo(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder builderForValue) {
        if (gcInfoBuilder_ == null) {
          ensureGcInfoIsMutable();
          gcInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          gcInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder addGcInfo(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo value) {
        if (gcInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGcInfoIsMutable();
          gcInfo_.add(value);
          onChanged();
        } else {
          gcInfoBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder addGcInfo(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo value) {
        if (gcInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGcInfoIsMutable();
          gcInfo_.add(index, value);
          onChanged();
        } else {
          gcInfoBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder addGcInfo(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder builderForValue) {
        if (gcInfoBuilder_ == null) {
          ensureGcInfoIsMutable();
          gcInfo_.add(builderForValue.build());
          onChanged();
        } else {
          gcInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder addGcInfo(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder builderForValue) {
        if (gcInfoBuilder_ == null) {
          ensureGcInfoIsMutable();
          gcInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          gcInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder addAllGcInfo(
          java.lang.Iterable values) {
        if (gcInfoBuilder_ == null) {
          ensureGcInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, gcInfo_);
          onChanged();
        } else {
          gcInfoBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder clearGcInfo() {
        if (gcInfoBuilder_ == null) {
          gcInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          gcInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public Builder removeGcInfo(int index) {
        if (gcInfoBuilder_ == null) {
          ensureGcInfoIsMutable();
          gcInfo_.remove(index);
          onChanged();
        } else {
          gcInfoBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder getGcInfoBuilder(
          int index) {
        return getGcInfoFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder getGcInfoOrBuilder(
          int index) {
        if (gcInfoBuilder_ == null) {
          return gcInfo_.get(index);  } else {
          return gcInfoBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public java.util.List 
           getGcInfoOrBuilderList() {
        if (gcInfoBuilder_ != null) {
          return gcInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(gcInfo_);
        }
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder addGcInfoBuilder() {
        return getGcInfoFieldBuilder().addBuilder(
            in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.getDefaultInstance());
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder addGcInfoBuilder(
          int index) {
        return getGcInfoFieldBuilder().addBuilder(
            index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.getDefaultInstance());
      }
      /**
       * repeated .CGCToGCMsgMasterStartupComplete.GCInfo gc_info = 1;
       */
      public java.util.List 
           getGcInfoBuilderList() {
        return getGcInfoFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder> 
          getGcInfoFieldBuilder() {
        if (gcInfoBuilder_ == null) {
          gcInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfo.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete.GCInfoOrBuilder>(
                  gcInfo_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          gcInfo_ = null;
        }
        return gcInfoBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CGCToGCMsgMasterStartupComplete)
    }

    // @@protoc_insertion_point(class_scope:CGCToGCMsgMasterStartupComplete)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CGCToGCMsgMasterStartupComplete parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgMasterStartupComplete getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional uint32 msg_type = 1;
     * @return Whether the msgType field is set.
     */
    boolean hasMsgType();
    /**
     * optional uint32 msg_type = 1;
     * @return The msgType.
     */
    int getMsgType();

    /**
     * optional fixed64 sender_id = 2;
     * @return Whether the senderId field is set.
     */
    boolean hasSenderId();
    /**
     * optional fixed64 sender_id = 2;
     * @return The senderId.
     */
    long getSenderId();

    /**
     * optional bytes net_message = 3;
     * @return Whether the netMessage field is set.
     */
    boolean hasNetMessage();
    /**
     * optional bytes net_message = 3;
     * @return The netMessage.
     */
    com.google.protobuf.ByteString getNetMessage();
  }
  /**
   * Protobuf type {@code CGCToGCMsgRouted}
   */
  public static final class CGCToGCMsgRouted extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGCToGCMsgRouted)
      CGCToGCMsgRoutedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CGCToGCMsgRouted.class.getName());
    }
    // Use CGCToGCMsgRouted.newBuilder() to construct.
    private CGCToGCMsgRouted(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CGCToGCMsgRouted() {
      netMessage_ = com.google.protobuf.ByteString.EMPTY;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRouted_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRouted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.Builder.class);
    }

    private int bitField0_;
    public static final int MSG_TYPE_FIELD_NUMBER = 1;
    private int msgType_ = 0;
    /**
     * optional uint32 msg_type = 1;
     * @return Whether the msgType field is set.
     */
    @java.lang.Override
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 msg_type = 1;
     * @return The msgType.
     */
    @java.lang.Override
    public int getMsgType() {
      return msgType_;
    }

    public static final int SENDER_ID_FIELD_NUMBER = 2;
    private long senderId_ = 0L;
    /**
     * optional fixed64 sender_id = 2;
     * @return Whether the senderId field is set.
     */
    @java.lang.Override
    public boolean hasSenderId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 sender_id = 2;
     * @return The senderId.
     */
    @java.lang.Override
    public long getSenderId() {
      return senderId_;
    }

    public static final int NET_MESSAGE_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString netMessage_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * optional bytes net_message = 3;
     * @return Whether the netMessage field is set.
     */
    @java.lang.Override
    public boolean hasNetMessage() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional bytes net_message = 3;
     * @return The netMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getNetMessage() {
      return netMessage_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, msgType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(2, senderId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, netMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, msgType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, senderId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, netMessage_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted) obj;

      if (hasMsgType() != other.hasMsgType()) return false;
      if (hasMsgType()) {
        if (getMsgType()
            != other.getMsgType()) return false;
      }
      if (hasSenderId() != other.hasSenderId()) return false;
      if (hasSenderId()) {
        if (getSenderId()
            != other.getSenderId()) return false;
      }
      if (hasNetMessage() != other.hasNetMessage()) return false;
      if (hasNetMessage()) {
        if (!getNetMessage()
            .equals(other.getNetMessage())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMsgType()) {
        hash = (37 * hash) + MSG_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMsgType();
      }
      if (hasSenderId()) {
        hash = (37 * hash) + SENDER_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSenderId());
      }
      if (hasNetMessage()) {
        hash = (37 * hash) + NET_MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getNetMessage().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGCToGCMsgRouted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGCToGCMsgRouted)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRouted_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRouted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        msgType_ = 0;
        senderId_ = 0L;
        netMessage_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRouted_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.msgType_ = msgType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.senderId_ = senderId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.netMessage_ = netMessage_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted.getDefaultInstance()) return this;
        if (other.hasMsgType()) {
          setMsgType(other.getMsgType());
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasNetMessage()) {
          setNetMessage(other.getNetMessage());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                msgType_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 17: {
                senderId_ = input.readFixed64();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 26: {
                netMessage_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int msgType_ ;
      /**
       * optional uint32 msg_type = 1;
       * @return Whether the msgType field is set.
       */
      @java.lang.Override
      public boolean hasMsgType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 msg_type = 1;
       * @return The msgType.
       */
      @java.lang.Override
      public int getMsgType() {
        return msgType_;
      }
      /**
       * optional uint32 msg_type = 1;
       * @param value The msgType to set.
       * @return This builder for chaining.
       */
      public Builder setMsgType(int value) {

        msgType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional uint32 msg_type = 1;
       * @return This builder for chaining.
       */
      public Builder clearMsgType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgType_ = 0;
        onChanged();
        return this;
      }

      private long senderId_ ;
      /**
       * optional fixed64 sender_id = 2;
       * @return Whether the senderId field is set.
       */
      @java.lang.Override
      public boolean hasSenderId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed64 sender_id = 2;
       * @return The senderId.
       */
      @java.lang.Override
      public long getSenderId() {
        return senderId_;
      }
      /**
       * optional fixed64 sender_id = 2;
       * @param value The senderId to set.
       * @return This builder for chaining.
       */
      public Builder setSenderId(long value) {

        senderId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 sender_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearSenderId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        senderId_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString netMessage_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes net_message = 3;
       * @return Whether the netMessage field is set.
       */
      @java.lang.Override
      public boolean hasNetMessage() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional bytes net_message = 3;
       * @return The netMessage.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getNetMessage() {
        return netMessage_;
      }
      /**
       * optional bytes net_message = 3;
       * @param value The netMessage to set.
       * @return This builder for chaining.
       */
      public Builder setNetMessage(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        netMessage_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional bytes net_message = 3;
       * @return This builder for chaining.
       */
      public Builder clearNetMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        netMessage_ = getDefaultInstance().getNetMessage();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CGCToGCMsgRouted)
    }

    // @@protoc_insertion_point(class_scope:CGCToGCMsgRouted)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CGCToGCMsgRouted parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRouted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional uint32 msg_type = 1;
     * @return Whether the msgType field is set.
     */
    boolean hasMsgType();
    /**
     * optional uint32 msg_type = 1;
     * @return The msgType.
     */
    int getMsgType();

    /**
     * optional bytes net_message = 2;
     * @return Whether the netMessage field is set.
     */
    boolean hasNetMessage();
    /**
     * optional bytes net_message = 2;
     * @return The netMessage.
     */
    com.google.protobuf.ByteString getNetMessage();
  }
  /**
   * Protobuf type {@code CGCToGCMsgRoutedReply}
   */
  public static final class CGCToGCMsgRoutedReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGCToGCMsgRoutedReply)
      CGCToGCMsgRoutedReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CGCToGCMsgRoutedReply.class.getName());
    }
    // Use CGCToGCMsgRoutedReply.newBuilder() to construct.
    private CGCToGCMsgRoutedReply(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CGCToGCMsgRoutedReply() {
      netMessage_ = com.google.protobuf.ByteString.EMPTY;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRoutedReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRoutedReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.Builder.class);
    }

    private int bitField0_;
    public static final int MSG_TYPE_FIELD_NUMBER = 1;
    private int msgType_ = 0;
    /**
     * optional uint32 msg_type = 1;
     * @return Whether the msgType field is set.
     */
    @java.lang.Override
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional uint32 msg_type = 1;
     * @return The msgType.
     */
    @java.lang.Override
    public int getMsgType() {
      return msgType_;
    }

    public static final int NET_MESSAGE_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString netMessage_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * optional bytes net_message = 2;
     * @return Whether the netMessage field is set.
     */
    @java.lang.Override
    public boolean hasNetMessage() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional bytes net_message = 2;
     * @return The netMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getNetMessage() {
      return netMessage_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, msgType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, netMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, msgType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, netMessage_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply) obj;

      if (hasMsgType() != other.hasMsgType()) return false;
      if (hasMsgType()) {
        if (getMsgType()
            != other.getMsgType()) return false;
      }
      if (hasNetMessage() != other.hasNetMessage()) return false;
      if (hasNetMessage()) {
        if (!getNetMessage()
            .equals(other.getNetMessage())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMsgType()) {
        hash = (37 * hash) + MSG_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMsgType();
      }
      if (hasNetMessage()) {
        hash = (37 * hash) + NET_MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getNetMessage().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGCToGCMsgRoutedReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGCToGCMsgRoutedReply)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRoutedReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRoutedReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        msgType_ = 0;
        netMessage_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CGCToGCMsgRoutedReply_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.msgType_ = msgType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.netMessage_ = netMessage_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply.getDefaultInstance()) return this;
        if (other.hasMsgType()) {
          setMsgType(other.getMsgType());
        }
        if (other.hasNetMessage()) {
          setNetMessage(other.getNetMessage());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                msgType_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                netMessage_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int msgType_ ;
      /**
       * optional uint32 msg_type = 1;
       * @return Whether the msgType field is set.
       */
      @java.lang.Override
      public boolean hasMsgType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 msg_type = 1;
       * @return The msgType.
       */
      @java.lang.Override
      public int getMsgType() {
        return msgType_;
      }
      /**
       * optional uint32 msg_type = 1;
       * @param value The msgType to set.
       * @return This builder for chaining.
       */
      public Builder setMsgType(int value) {

        msgType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional uint32 msg_type = 1;
       * @return This builder for chaining.
       */
      public Builder clearMsgType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgType_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString netMessage_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes net_message = 2;
       * @return Whether the netMessage field is set.
       */
      @java.lang.Override
      public boolean hasNetMessage() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional bytes net_message = 2;
       * @return The netMessage.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getNetMessage() {
        return netMessage_;
      }
      /**
       * optional bytes net_message = 2;
       * @param value The netMessage to set.
       * @return This builder for chaining.
       */
      public Builder setNetMessage(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        netMessage_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional bytes net_message = 2;
       * @return This builder for chaining.
       */
      public Builder clearNetMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        netMessage_ = getDefaultInstance().getNetMessage();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CGCToGCMsgRoutedReply)
    }

    // @@protoc_insertion_point(class_scope:CGCToGCMsgRoutedReply)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CGCToGCMsgRoutedReply parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CGCToGCMsgRoutedReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    java.util.List 
        getUpdatesList();
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getUpdates(int index);
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    int getUpdatesCount();
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    java.util.List 
        getUpdatesOrBuilderList();
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder getUpdatesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgGCUpdateSubGCSessionInfo}
   */
  public static final class CMsgGCUpdateSubGCSessionInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCUpdateSubGCSessionInfo)
      CMsgGCUpdateSubGCSessionInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCUpdateSubGCSessionInfo.class.getName());
    }
    // Use CMsgGCUpdateSubGCSessionInfo.newBuilder() to construct.
    private CMsgGCUpdateSubGCSessionInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCUpdateSubGCSessionInfo() {
      updates_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.Builder.class);
    }

    public interface CMsgUpdateOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional fixed64 steamid = 1;
       * @return Whether the steamid field is set.
       */
      boolean hasSteamid();
      /**
       * optional fixed64 steamid = 1;
       * @return The steamid.
       */
      long getSteamid();

      /**
       * optional fixed32 ip = 2;
       * @return Whether the ip field is set.
       */
      boolean hasIp();
      /**
       * optional fixed32 ip = 2;
       * @return The ip.
       */
      int getIp();

      /**
       * optional bool trusted = 3;
       * @return Whether the trusted field is set.
       */
      boolean hasTrusted();
      /**
       * optional bool trusted = 3;
       * @return The trusted.
       */
      boolean getTrusted();
    }
    /**
     * Protobuf type {@code CMsgGCUpdateSubGCSessionInfo.CMsgUpdate}
     */
    public static final class CMsgUpdate extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)
        CMsgUpdateOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          CMsgUpdate.class.getName());
      }
      // Use CMsgUpdate.newBuilder() to construct.
      private CMsgUpdate(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private CMsgUpdate() {
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder.class);
      }

      private int bitField0_;
      public static final int STEAMID_FIELD_NUMBER = 1;
      private long steamid_ = 0L;
      /**
       * optional fixed64 steamid = 1;
       * @return Whether the steamid field is set.
       */
      @java.lang.Override
      public boolean hasSteamid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 steamid = 1;
       * @return The steamid.
       */
      @java.lang.Override
      public long getSteamid() {
        return steamid_;
      }

      public static final int IP_FIELD_NUMBER = 2;
      private int ip_ = 0;
      /**
       * optional fixed32 ip = 2;
       * @return Whether the ip field is set.
       */
      @java.lang.Override
      public boolean hasIp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed32 ip = 2;
       * @return The ip.
       */
      @java.lang.Override
      public int getIp() {
        return ip_;
      }

      public static final int TRUSTED_FIELD_NUMBER = 3;
      private boolean trusted_ = false;
      /**
       * optional bool trusted = 3;
       * @return Whether the trusted field is set.
       */
      @java.lang.Override
      public boolean hasTrusted() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional bool trusted = 3;
       * @return The trusted.
       */
      @java.lang.Override
      public boolean getTrusted() {
        return trusted_;
      }

      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 (((bitField0_ & 0x00000001) != 0)) {
          output.writeFixed64(1, steamid_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeFixed32(2, ip_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeBool(3, trusted_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFixed64Size(1, steamid_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFixed32Size(2, ip_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, trusted_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)) {
          return super.equals(obj);
        }
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate) obj;

        if (hasSteamid() != other.hasSteamid()) return false;
        if (hasSteamid()) {
          if (getSteamid()
              != other.getSteamid()) return false;
        }
        if (hasIp() != other.hasIp()) return false;
        if (hasIp()) {
          if (getIp()
              != other.getIp()) return false;
        }
        if (hasTrusted() != other.hasTrusted()) return false;
        if (hasTrusted()) {
          if (getTrusted()
              != other.getTrusted()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasSteamid()) {
          hash = (37 * hash) + STEAMID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getSteamid());
        }
        if (hasIp()) {
          hash = (37 * hash) + IP_FIELD_NUMBER;
          hash = (53 * hash) + getIp();
        }
        if (hasTrusted()) {
          hash = (37 * hash) + TRUSTED_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getTrusted());
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate 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.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CMsgGCUpdateSubGCSessionInfo.CMsgUpdate}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder.class);
        }

        // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          steamid_ = 0L;
          ip_ = 0;
          trusted_ = false;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getDefaultInstanceForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.getDefaultInstance();
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate build() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate buildPartial() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.steamid_ = steamid_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.ip_ = ip_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.trusted_ = trusted_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate) {
            return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate other) {
          if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.getDefaultInstance()) return this;
          if (other.hasSteamid()) {
            setSteamid(other.getSteamid());
          }
          if (other.hasIp()) {
            setIp(other.getIp());
          }
          if (other.hasTrusted()) {
            setTrusted(other.getTrusted());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 9: {
                  steamid_ = input.readFixed64();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 9
                case 21: {
                  ip_ = input.readFixed32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 21
                case 24: {
                  trusted_ = input.readBool();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private long steamid_ ;
        /**
         * optional fixed64 steamid = 1;
         * @return Whether the steamid field is set.
         */
        @java.lang.Override
        public boolean hasSteamid() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional fixed64 steamid = 1;
         * @return The steamid.
         */
        @java.lang.Override
        public long getSteamid() {
          return steamid_;
        }
        /**
         * optional fixed64 steamid = 1;
         * @param value The steamid to set.
         * @return This builder for chaining.
         */
        public Builder setSteamid(long value) {

          steamid_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional fixed64 steamid = 1;
         * @return This builder for chaining.
         */
        public Builder clearSteamid() {
          bitField0_ = (bitField0_ & ~0x00000001);
          steamid_ = 0L;
          onChanged();
          return this;
        }

        private int ip_ ;
        /**
         * optional fixed32 ip = 2;
         * @return Whether the ip field is set.
         */
        @java.lang.Override
        public boolean hasIp() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * optional fixed32 ip = 2;
         * @return The ip.
         */
        @java.lang.Override
        public int getIp() {
          return ip_;
        }
        /**
         * optional fixed32 ip = 2;
         * @param value The ip to set.
         * @return This builder for chaining.
         */
        public Builder setIp(int value) {

          ip_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * optional fixed32 ip = 2;
         * @return This builder for chaining.
         */
        public Builder clearIp() {
          bitField0_ = (bitField0_ & ~0x00000002);
          ip_ = 0;
          onChanged();
          return this;
        }

        private boolean trusted_ ;
        /**
         * optional bool trusted = 3;
         * @return Whether the trusted field is set.
         */
        @java.lang.Override
        public boolean hasTrusted() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * optional bool trusted = 3;
         * @return The trusted.
         */
        @java.lang.Override
        public boolean getTrusted() {
          return trusted_;
        }
        /**
         * optional bool trusted = 3;
         * @param value The trusted to set.
         * @return This builder for chaining.
         */
        public Builder setTrusted(boolean value) {

          trusted_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * optional bool trusted = 3;
         * @return This builder for chaining.
         */
        public Builder clearTrusted() {
          bitField0_ = (bitField0_ & ~0x00000004);
          trusted_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)
      }

      // @@protoc_insertion_point(class_scope:CMsgGCUpdateSubGCSessionInfo.CMsgUpdate)
      private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate();
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public CMsgUpdate parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int UPDATES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List updates_;
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    @java.lang.Override
    public java.util.List getUpdatesList() {
      return updates_;
    }
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    @java.lang.Override
    public java.util.List 
        getUpdatesOrBuilderList() {
      return updates_;
    }
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    @java.lang.Override
    public int getUpdatesCount() {
      return updates_.size();
    }
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getUpdates(int index) {
      return updates_.get(index);
    }
    /**
     * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder getUpdatesOrBuilder(
        int index) {
      return updates_.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 < updates_.size(); i++) {
        output.writeMessage(1, updates_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo) obj;

      if (!getUpdatesList()
          .equals(other.getUpdatesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getUpdatesCount() > 0) {
        hash = (37 * hash) + UPDATES_FIELD_NUMBER;
        hash = (53 * hash) + getUpdatesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCUpdateSubGCSessionInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCUpdateSubGCSessionInfo)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (updatesBuilder_ == null) {
          updates_ = java.util.Collections.emptyList();
        } else {
          updates_ = null;
          updatesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo result) {
        if (updatesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            updates_ = java.util.Collections.unmodifiableList(updates_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.updates_ = updates_;
        } else {
          result.updates_ = updatesBuilder_.build();
        }
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.getDefaultInstance()) return this;
        if (updatesBuilder_ == null) {
          if (!other.updates_.isEmpty()) {
            if (updates_.isEmpty()) {
              updates_ = other.updates_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureUpdatesIsMutable();
              updates_.addAll(other.updates_);
            }
            onChanged();
          }
        } else {
          if (!other.updates_.isEmpty()) {
            if (updatesBuilder_.isEmpty()) {
              updatesBuilder_.dispose();
              updatesBuilder_ = null;
              updates_ = other.updates_;
              bitField0_ = (bitField0_ & ~0x00000001);
              updatesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getUpdatesFieldBuilder() : null;
            } else {
              updatesBuilder_.addAllMessages(other.updates_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate m =
                    input.readMessage(
                        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.parser(),
                        extensionRegistry);
                if (updatesBuilder_ == null) {
                  ensureUpdatesIsMutable();
                  updates_.add(m);
                } else {
                  updatesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List updates_ =
        java.util.Collections.emptyList();
      private void ensureUpdatesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          updates_ = new java.util.ArrayList(updates_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder> updatesBuilder_;

      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public java.util.List getUpdatesList() {
        if (updatesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(updates_);
        } else {
          return updatesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public int getUpdatesCount() {
        if (updatesBuilder_ == null) {
          return updates_.size();
        } else {
          return updatesBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate getUpdates(int index) {
        if (updatesBuilder_ == null) {
          return updates_.get(index);
        } else {
          return updatesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder setUpdates(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate value) {
        if (updatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatesIsMutable();
          updates_.set(index, value);
          onChanged();
        } else {
          updatesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder setUpdates(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder builderForValue) {
        if (updatesBuilder_ == null) {
          ensureUpdatesIsMutable();
          updates_.set(index, builderForValue.build());
          onChanged();
        } else {
          updatesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder addUpdates(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate value) {
        if (updatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatesIsMutable();
          updates_.add(value);
          onChanged();
        } else {
          updatesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder addUpdates(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate value) {
        if (updatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatesIsMutable();
          updates_.add(index, value);
          onChanged();
        } else {
          updatesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder addUpdates(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder builderForValue) {
        if (updatesBuilder_ == null) {
          ensureUpdatesIsMutable();
          updates_.add(builderForValue.build());
          onChanged();
        } else {
          updatesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder addUpdates(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder builderForValue) {
        if (updatesBuilder_ == null) {
          ensureUpdatesIsMutable();
          updates_.add(index, builderForValue.build());
          onChanged();
        } else {
          updatesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder addAllUpdates(
          java.lang.Iterable values) {
        if (updatesBuilder_ == null) {
          ensureUpdatesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, updates_);
          onChanged();
        } else {
          updatesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder clearUpdates() {
        if (updatesBuilder_ == null) {
          updates_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          updatesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public Builder removeUpdates(int index) {
        if (updatesBuilder_ == null) {
          ensureUpdatesIsMutable();
          updates_.remove(index);
          onChanged();
        } else {
          updatesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder getUpdatesBuilder(
          int index) {
        return getUpdatesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder getUpdatesOrBuilder(
          int index) {
        if (updatesBuilder_ == null) {
          return updates_.get(index);  } else {
          return updatesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public java.util.List 
           getUpdatesOrBuilderList() {
        if (updatesBuilder_ != null) {
          return updatesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(updates_);
        }
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder addUpdatesBuilder() {
        return getUpdatesFieldBuilder().addBuilder(
            in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.getDefaultInstance());
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder addUpdatesBuilder(
          int index) {
        return getUpdatesFieldBuilder().addBuilder(
            index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.getDefaultInstance());
      }
      /**
       * repeated .CMsgGCUpdateSubGCSessionInfo.CMsgUpdate updates = 1;
       */
      public java.util.List 
           getUpdatesBuilderList() {
        return getUpdatesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder> 
          getUpdatesFieldBuilder() {
        if (updatesBuilder_ == null) {
          updatesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdate.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo.CMsgUpdateOrBuilder>(
                  updates_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          updates_ = null;
        }
        return updatesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCUpdateSubGCSessionInfo)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCUpdateSubGCSessionInfo)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCUpdateSubGCSessionInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCUpdateSubGCSessionInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 steamid = 1;
     * @return Whether the steamid field is set.
     */
    boolean hasSteamid();
    /**
     * optional fixed64 steamid = 1;
     * @return The steamid.
     */
    long getSteamid();
  }
  /**
   * Protobuf type {@code CMsgGCRequestSubGCSessionInfo}
   */
  public static final class CMsgGCRequestSubGCSessionInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCRequestSubGCSessionInfo)
      CMsgGCRequestSubGCSessionInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCRequestSubGCSessionInfo.class.getName());
    }
    // Use CMsgGCRequestSubGCSessionInfo.newBuilder() to construct.
    private CMsgGCRequestSubGCSessionInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCRequestSubGCSessionInfo() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.Builder.class);
    }

    private int bitField0_;
    public static final int STEAMID_FIELD_NUMBER = 1;
    private long steamid_ = 0L;
    /**
     * optional fixed64 steamid = 1;
     * @return Whether the steamid field is set.
     */
    @java.lang.Override
    public boolean hasSteamid() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 steamid = 1;
     * @return The steamid.
     */
    @java.lang.Override
    public long getSteamid() {
      return steamid_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, steamid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, steamid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo) obj;

      if (hasSteamid() != other.hasSteamid()) return false;
      if (hasSteamid()) {
        if (getSteamid()
            != other.getSteamid()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSteamid()) {
        hash = (37 * hash) + STEAMID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSteamid());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCRequestSubGCSessionInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCRequestSubGCSessionInfo)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        steamid_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfo_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.steamid_ = steamid_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo.getDefaultInstance()) return this;
        if (other.hasSteamid()) {
          setSteamid(other.getSteamid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                steamid_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long steamid_ ;
      /**
       * optional fixed64 steamid = 1;
       * @return Whether the steamid field is set.
       */
      @java.lang.Override
      public boolean hasSteamid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 steamid = 1;
       * @return The steamid.
       */
      @java.lang.Override
      public long getSteamid() {
        return steamid_;
      }
      /**
       * optional fixed64 steamid = 1;
       * @param value The steamid to set.
       * @return This builder for chaining.
       */
      public Builder setSteamid(long value) {

        steamid_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 steamid = 1;
       * @return This builder for chaining.
       */
      public Builder clearSteamid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        steamid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCRequestSubGCSessionInfo)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCRequestSubGCSessionInfo)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCRequestSubGCSessionInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed32 ip = 1;
     * @return Whether the ip field is set.
     */
    boolean hasIp();
    /**
     * optional fixed32 ip = 1;
     * @return The ip.
     */
    int getIp();

    /**
     * optional bool trusted = 2;
     * @return Whether the trusted field is set.
     */
    boolean hasTrusted();
    /**
     * optional bool trusted = 2;
     * @return The trusted.
     */
    boolean getTrusted();
  }
  /**
   * Protobuf type {@code CMsgGCRequestSubGCSessionInfoResponse}
   */
  public static final class CMsgGCRequestSubGCSessionInfoResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCRequestSubGCSessionInfoResponse)
      CMsgGCRequestSubGCSessionInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCRequestSubGCSessionInfoResponse.class.getName());
    }
    // Use CMsgGCRequestSubGCSessionInfoResponse.newBuilder() to construct.
    private CMsgGCRequestSubGCSessionInfoResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCRequestSubGCSessionInfoResponse() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.Builder.class);
    }

    private int bitField0_;
    public static final int IP_FIELD_NUMBER = 1;
    private int ip_ = 0;
    /**
     * optional fixed32 ip = 1;
     * @return Whether the ip field is set.
     */
    @java.lang.Override
    public boolean hasIp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed32 ip = 1;
     * @return The ip.
     */
    @java.lang.Override
    public int getIp() {
      return ip_;
    }

    public static final int TRUSTED_FIELD_NUMBER = 2;
    private boolean trusted_ = false;
    /**
     * optional bool trusted = 2;
     * @return Whether the trusted field is set.
     */
    @java.lang.Override
    public boolean hasTrusted() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional bool trusted = 2;
     * @return The trusted.
     */
    @java.lang.Override
    public boolean getTrusted() {
      return trusted_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed32(1, ip_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, trusted_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(1, ip_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, trusted_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse) obj;

      if (hasIp() != other.hasIp()) return false;
      if (hasIp()) {
        if (getIp()
            != other.getIp()) return false;
      }
      if (hasTrusted() != other.hasTrusted()) return false;
      if (hasTrusted()) {
        if (getTrusted()
            != other.getTrusted()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasIp()) {
        hash = (37 * hash) + IP_FIELD_NUMBER;
        hash = (53 * hash) + getIp();
      }
      if (hasTrusted()) {
        hash = (37 * hash) + TRUSTED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getTrusted());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCRequestSubGCSessionInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCRequestSubGCSessionInfoResponse)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        ip_ = 0;
        trusted_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.ip_ = ip_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.trusted_ = trusted_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse.getDefaultInstance()) return this;
        if (other.hasIp()) {
          setIp(other.getIp());
        }
        if (other.hasTrusted()) {
          setTrusted(other.getTrusted());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 13: {
                ip_ = input.readFixed32();
                bitField0_ |= 0x00000001;
                break;
              } // case 13
              case 16: {
                trusted_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int ip_ ;
      /**
       * optional fixed32 ip = 1;
       * @return Whether the ip field is set.
       */
      @java.lang.Override
      public boolean hasIp() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed32 ip = 1;
       * @return The ip.
       */
      @java.lang.Override
      public int getIp() {
        return ip_;
      }
      /**
       * optional fixed32 ip = 1;
       * @param value The ip to set.
       * @return This builder for chaining.
       */
      public Builder setIp(int value) {

        ip_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 ip = 1;
       * @return This builder for chaining.
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = 0;
        onChanged();
        return this;
      }

      private boolean trusted_ ;
      /**
       * optional bool trusted = 2;
       * @return Whether the trusted field is set.
       */
      @java.lang.Override
      public boolean hasTrusted() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional bool trusted = 2;
       * @return The trusted.
       */
      @java.lang.Override
      public boolean getTrusted() {
        return trusted_;
      }
      /**
       * optional bool trusted = 2;
       * @param value The trusted to set.
       * @return This builder for chaining.
       */
      public Builder setTrusted(boolean value) {

        trusted_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional bool trusted = 2;
       * @return This builder for chaining.
       */
      public Builder clearTrusted() {
        bitField0_ = (bitField0_ & ~0x00000002);
        trusted_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCRequestSubGCSessionInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCRequestSubGCSessionInfoResponse)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCRequestSubGCSessionInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCRequestSubGCSessionInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 steamid = 1;
     * @return Whether the steamid field is set.
     */
    boolean hasSteamid();
    /**
     * optional fixed64 steamid = 1;
     * @return The steamid.
     */
    long getSteamid();
  }
  /**
   * Protobuf type {@code CMsgGCToGCIncrementRecruitmentLevel}
   */
  public static final class CMsgGCToGCIncrementRecruitmentLevel extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCToGCIncrementRecruitmentLevel)
      CMsgGCToGCIncrementRecruitmentLevelOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCToGCIncrementRecruitmentLevel.class.getName());
    }
    // Use CMsgGCToGCIncrementRecruitmentLevel.newBuilder() to construct.
    private CMsgGCToGCIncrementRecruitmentLevel(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCToGCIncrementRecruitmentLevel() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCIncrementRecruitmentLevel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.Builder.class);
    }

    private int bitField0_;
    public static final int STEAMID_FIELD_NUMBER = 1;
    private long steamid_ = 0L;
    /**
     * optional fixed64 steamid = 1;
     * @return Whether the steamid field is set.
     */
    @java.lang.Override
    public boolean hasSteamid() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 steamid = 1;
     * @return The steamid.
     */
    @java.lang.Override
    public long getSteamid() {
      return steamid_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, steamid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, steamid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel) obj;

      if (hasSteamid() != other.hasSteamid()) return false;
      if (hasSteamid()) {
        if (getSteamid()
            != other.getSteamid()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSteamid()) {
        hash = (37 * hash) + STEAMID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSteamid());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCToGCIncrementRecruitmentLevel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCToGCIncrementRecruitmentLevel)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCIncrementRecruitmentLevel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        steamid_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.steamid_ = steamid_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel.getDefaultInstance()) return this;
        if (other.hasSteamid()) {
          setSteamid(other.getSteamid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                steamid_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long steamid_ ;
      /**
       * optional fixed64 steamid = 1;
       * @return Whether the steamid field is set.
       */
      @java.lang.Override
      public boolean hasSteamid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 steamid = 1;
       * @return The steamid.
       */
      @java.lang.Override
      public long getSteamid() {
        return steamid_;
      }
      /**
       * optional fixed64 steamid = 1;
       * @param value The steamid to set.
       * @return This builder for chaining.
       */
      public Builder setSteamid(long value) {

        steamid_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 steamid = 1;
       * @return This builder for chaining.
       */
      public Builder clearSteamid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        steamid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCToGCIncrementRecruitmentLevel)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCToGCIncrementRecruitmentLevel)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCToGCIncrementRecruitmentLevel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCIncrementRecruitmentLevel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional .CMsgSOIDOwner soid = 1;
     * @return Whether the soid field is set.
     */
    boolean hasSoid();
    /**
     * optional .CMsgSOIDOwner soid = 1;
     * @return The soid.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getSoid();
    /**
     * optional .CMsgSOIDOwner soid = 1;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getSoidOrBuilder();

    /**
     * optional fixed64 version = 2;
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * optional fixed64 version = 2;
     * @return The version.
     */
    long getVersion();

    /**
     * optional uint32 service_id = 3;
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * optional uint32 service_id = 3;
     * @return The serviceId.
     */
    int getServiceId();
  }
  /**
   * Protobuf type {@code CMsgSOCacheHaveVersion}
   */
  public static final class CMsgSOCacheHaveVersion extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgSOCacheHaveVersion)
      CMsgSOCacheHaveVersionOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgSOCacheHaveVersion.class.getName());
    }
    // Use CMsgSOCacheHaveVersion.newBuilder() to construct.
    private CMsgSOCacheHaveVersion(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgSOCacheHaveVersion() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheHaveVersion_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheHaveVersion_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.Builder.class);
    }

    private int bitField0_;
    public static final int SOID_FIELD_NUMBER = 1;
    private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner soid_;
    /**
     * optional .CMsgSOIDOwner soid = 1;
     * @return Whether the soid field is set.
     */
    @java.lang.Override
    public boolean hasSoid() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .CMsgSOIDOwner soid = 1;
     * @return The soid.
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getSoid() {
      return soid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : soid_;
    }
    /**
     * optional .CMsgSOIDOwner soid = 1;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getSoidOrBuilder() {
      return soid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : soid_;
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private long version_ = 0L;
    /**
     * optional fixed64 version = 2;
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 version = 2;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 3;
    private int serviceId_ = 0;
    /**
     * optional uint32 service_id = 3;
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional uint32 service_id = 3;
     * @return The serviceId.
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getSoid());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(2, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, serviceId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getSoid());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, version_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, serviceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion) obj;

      if (hasSoid() != other.hasSoid()) return false;
      if (hasSoid()) {
        if (!getSoid()
            .equals(other.getSoid())) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (getVersion()
            != other.getVersion()) return false;
      }
      if (hasServiceId() != other.hasServiceId()) return false;
      if (hasServiceId()) {
        if (getServiceId()
            != other.getServiceId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSoid()) {
        hash = (37 * hash) + SOID_FIELD_NUMBER;
        hash = (53 * hash) + getSoid().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getVersion());
      }
      if (hasServiceId()) {
        hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getServiceId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgSOCacheHaveVersion}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgSOCacheHaveVersion)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheHaveVersion_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheHaveVersion_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getSoidFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        soid_ = null;
        if (soidBuilder_ != null) {
          soidBuilder_.dispose();
          soidBuilder_ = null;
        }
        version_ = 0L;
        serviceId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgSOCacheHaveVersion_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.soid_ = soidBuilder_ == null
              ? soid_
              : soidBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.version_ = version_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.serviceId_ = serviceId_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion.getDefaultInstance()) return this;
        if (other.hasSoid()) {
          mergeSoid(other.getSoid());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasServiceId()) {
          setServiceId(other.getServiceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getSoidFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 17: {
                version_ = input.readFixed64();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 24: {
                serviceId_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner soid_;
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> soidBuilder_;
      /**
       * optional .CMsgSOIDOwner soid = 1;
       * @return Whether the soid field is set.
       */
      public boolean hasSoid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       * @return The soid.
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner getSoid() {
        if (soidBuilder_ == null) {
          return soid_ == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : soid_;
        } else {
          return soidBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public Builder setSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (soidBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          soid_ = value;
        } else {
          soidBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public Builder setSoid(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder builderForValue) {
        if (soidBuilder_ == null) {
          soid_ = builderForValue.build();
        } else {
          soidBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public Builder mergeSoid(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner value) {
        if (soidBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            soid_ != null &&
            soid_ != in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance()) {
            getSoidBuilder().mergeFrom(value);
          } else {
            soid_ = value;
          }
        } else {
          soidBuilder_.mergeFrom(value);
        }
        if (soid_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public Builder clearSoid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        soid_ = null;
        if (soidBuilder_ != null) {
          soidBuilder_.dispose();
          soidBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder getSoidBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSoidFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder getSoidOrBuilder() {
        if (soidBuilder_ != null) {
          return soidBuilder_.getMessageOrBuilder();
        } else {
          return soid_ == null ?
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.getDefaultInstance() : soid_;
        }
      }
      /**
       * optional .CMsgSOIDOwner soid = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder> 
          getSoidFieldBuilder() {
        if (soidBuilder_ == null) {
          soidBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwner.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOIDOwnerOrBuilder>(
                  getSoid(),
                  getParentForChildren(),
                  isClean());
          soid_ = null;
        }
        return soidBuilder_;
      }

      private long version_ ;
      /**
       * optional fixed64 version = 2;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed64 version = 2;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * optional fixed64 version = 2;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 version = 2;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0L;
        onChanged();
        return this;
      }

      private int serviceId_ ;
      /**
       * optional uint32 service_id = 3;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional uint32 service_id = 3;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
      /**
       * optional uint32 service_id = 3;
       * @param value The serviceId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceId(int value) {

        serviceId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional uint32 service_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearServiceId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        serviceId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgSOCacheHaveVersion)
    }

    // @@protoc_insertion_point(class_scope:CMsgSOCacheHaveVersion)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgSOCacheHaveVersion parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgSOCacheHaveVersion getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
     * @return The status.
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus getStatus();

    /**
     * optional uint32 client_session_need = 2;
     * @return Whether the clientSessionNeed field is set.
     */
    boolean hasClientSessionNeed();
    /**
     * optional uint32 client_session_need = 2;
     * @return The clientSessionNeed.
     */
    int getClientSessionNeed();

    /**
     * optional int32 queue_position = 3;
     * @return Whether the queuePosition field is set.
     */
    boolean hasQueuePosition();
    /**
     * optional int32 queue_position = 3;
     * @return The queuePosition.
     */
    int getQueuePosition();

    /**
     * optional int32 queue_size = 4;
     * @return Whether the queueSize field is set.
     */
    boolean hasQueueSize();
    /**
     * optional int32 queue_size = 4;
     * @return The queueSize.
     */
    int getQueueSize();

    /**
     * optional int32 wait_seconds = 5;
     * @return Whether the waitSeconds field is set.
     */
    boolean hasWaitSeconds();
    /**
     * optional int32 wait_seconds = 5;
     * @return The waitSeconds.
     */
    int getWaitSeconds();

    /**
     * optional int32 estimated_wait_seconds_remaining = 6;
     * @return Whether the estimatedWaitSecondsRemaining field is set.
     */
    boolean hasEstimatedWaitSecondsRemaining();
    /**
     * optional int32 estimated_wait_seconds_remaining = 6;
     * @return The estimatedWaitSecondsRemaining.
     */
    int getEstimatedWaitSecondsRemaining();
  }
  /**
   * Protobuf type {@code CMsgConnectionStatus}
   */
  public static final class CMsgConnectionStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgConnectionStatus)
      CMsgConnectionStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgConnectionStatus.class.getName());
    }
    // Use CMsgConnectionStatus.newBuilder() to construct.
    private CMsgConnectionStatus(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgConnectionStatus() {
      status_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgConnectionStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgConnectionStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private int status_ = 0;
    /**
     * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
     * @return Whether the status field is set.
     */
    @java.lang.Override public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
     * @return The status.
     */
    @java.lang.Override public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus getStatus() {
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus result = in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus.forNumber(status_);
      return result == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus.GCConnectionStatus_HAVE_SESSION : result;
    }

    public static final int CLIENT_SESSION_NEED_FIELD_NUMBER = 2;
    private int clientSessionNeed_ = 0;
    /**
     * optional uint32 client_session_need = 2;
     * @return Whether the clientSessionNeed field is set.
     */
    @java.lang.Override
    public boolean hasClientSessionNeed() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint32 client_session_need = 2;
     * @return The clientSessionNeed.
     */
    @java.lang.Override
    public int getClientSessionNeed() {
      return clientSessionNeed_;
    }

    public static final int QUEUE_POSITION_FIELD_NUMBER = 3;
    private int queuePosition_ = 0;
    /**
     * optional int32 queue_position = 3;
     * @return Whether the queuePosition field is set.
     */
    @java.lang.Override
    public boolean hasQueuePosition() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional int32 queue_position = 3;
     * @return The queuePosition.
     */
    @java.lang.Override
    public int getQueuePosition() {
      return queuePosition_;
    }

    public static final int QUEUE_SIZE_FIELD_NUMBER = 4;
    private int queueSize_ = 0;
    /**
     * optional int32 queue_size = 4;
     * @return Whether the queueSize field is set.
     */
    @java.lang.Override
    public boolean hasQueueSize() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional int32 queue_size = 4;
     * @return The queueSize.
     */
    @java.lang.Override
    public int getQueueSize() {
      return queueSize_;
    }

    public static final int WAIT_SECONDS_FIELD_NUMBER = 5;
    private int waitSeconds_ = 0;
    /**
     * optional int32 wait_seconds = 5;
     * @return Whether the waitSeconds field is set.
     */
    @java.lang.Override
    public boolean hasWaitSeconds() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional int32 wait_seconds = 5;
     * @return The waitSeconds.
     */
    @java.lang.Override
    public int getWaitSeconds() {
      return waitSeconds_;
    }

    public static final int ESTIMATED_WAIT_SECONDS_REMAINING_FIELD_NUMBER = 6;
    private int estimatedWaitSecondsRemaining_ = 0;
    /**
     * optional int32 estimated_wait_seconds_remaining = 6;
     * @return Whether the estimatedWaitSecondsRemaining field is set.
     */
    @java.lang.Override
    public boolean hasEstimatedWaitSecondsRemaining() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional int32 estimated_wait_seconds_remaining = 6;
     * @return The estimatedWaitSecondsRemaining.
     */
    @java.lang.Override
    public int getEstimatedWaitSecondsRemaining() {
      return estimatedWaitSecondsRemaining_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, status_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, clientSessionNeed_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(3, queuePosition_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, queueSize_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, waitSeconds_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt32(6, estimatedWaitSecondsRemaining_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, status_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, clientSessionNeed_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, queuePosition_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, queueSize_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, waitSeconds_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, estimatedWaitSecondsRemaining_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus) obj;

      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (status_ != other.status_) return false;
      }
      if (hasClientSessionNeed() != other.hasClientSessionNeed()) return false;
      if (hasClientSessionNeed()) {
        if (getClientSessionNeed()
            != other.getClientSessionNeed()) return false;
      }
      if (hasQueuePosition() != other.hasQueuePosition()) return false;
      if (hasQueuePosition()) {
        if (getQueuePosition()
            != other.getQueuePosition()) return false;
      }
      if (hasQueueSize() != other.hasQueueSize()) return false;
      if (hasQueueSize()) {
        if (getQueueSize()
            != other.getQueueSize()) return false;
      }
      if (hasWaitSeconds() != other.hasWaitSeconds()) return false;
      if (hasWaitSeconds()) {
        if (getWaitSeconds()
            != other.getWaitSeconds()) return false;
      }
      if (hasEstimatedWaitSecondsRemaining() != other.hasEstimatedWaitSecondsRemaining()) return false;
      if (hasEstimatedWaitSecondsRemaining()) {
        if (getEstimatedWaitSecondsRemaining()
            != other.getEstimatedWaitSecondsRemaining()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + status_;
      }
      if (hasClientSessionNeed()) {
        hash = (37 * hash) + CLIENT_SESSION_NEED_FIELD_NUMBER;
        hash = (53 * hash) + getClientSessionNeed();
      }
      if (hasQueuePosition()) {
        hash = (37 * hash) + QUEUE_POSITION_FIELD_NUMBER;
        hash = (53 * hash) + getQueuePosition();
      }
      if (hasQueueSize()) {
        hash = (37 * hash) + QUEUE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getQueueSize();
      }
      if (hasWaitSeconds()) {
        hash = (37 * hash) + WAIT_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getWaitSeconds();
      }
      if (hasEstimatedWaitSecondsRemaining()) {
        hash = (37 * hash) + ESTIMATED_WAIT_SECONDS_REMAINING_FIELD_NUMBER;
        hash = (53 * hash) + getEstimatedWaitSecondsRemaining();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgConnectionStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgConnectionStatus)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgConnectionStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgConnectionStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        status_ = 0;
        clientSessionNeed_ = 0;
        queuePosition_ = 0;
        queueSize_ = 0;
        waitSeconds_ = 0;
        estimatedWaitSecondsRemaining_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgConnectionStatus_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.status_ = status_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientSessionNeed_ = clientSessionNeed_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.queuePosition_ = queuePosition_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.queueSize_ = queueSize_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.waitSeconds_ = waitSeconds_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.estimatedWaitSecondsRemaining_ = estimatedWaitSecondsRemaining_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasClientSessionNeed()) {
          setClientSessionNeed(other.getClientSessionNeed());
        }
        if (other.hasQueuePosition()) {
          setQueuePosition(other.getQueuePosition());
        }
        if (other.hasQueueSize()) {
          setQueueSize(other.getQueueSize());
        }
        if (other.hasWaitSeconds()) {
          setWaitSeconds(other.getWaitSeconds());
        }
        if (other.hasEstimatedWaitSecondsRemaining()) {
          setEstimatedWaitSecondsRemaining(other.getEstimatedWaitSecondsRemaining());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus tmpValue =
                    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  status_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 16: {
                clientSessionNeed_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                queuePosition_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                queueSize_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                waitSeconds_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                estimatedWaitSecondsRemaining_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int status_ = 0;
      /**
       * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
       * @return Whether the status field is set.
       */
      @java.lang.Override public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
       * @return The status.
       */
      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus getStatus() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus result = in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus.forNumber(status_);
        return result == null ? in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus.GCConnectionStatus_HAVE_SESSION : result;
      }
      /**
       * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.GCConnectionStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * optional .GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION];
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = 0;
        onChanged();
        return this;
      }

      private int clientSessionNeed_ ;
      /**
       * optional uint32 client_session_need = 2;
       * @return Whether the clientSessionNeed field is set.
       */
      @java.lang.Override
      public boolean hasClientSessionNeed() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint32 client_session_need = 2;
       * @return The clientSessionNeed.
       */
      @java.lang.Override
      public int getClientSessionNeed() {
        return clientSessionNeed_;
      }
      /**
       * optional uint32 client_session_need = 2;
       * @param value The clientSessionNeed to set.
       * @return This builder for chaining.
       */
      public Builder setClientSessionNeed(int value) {

        clientSessionNeed_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional uint32 client_session_need = 2;
       * @return This builder for chaining.
       */
      public Builder clearClientSessionNeed() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSessionNeed_ = 0;
        onChanged();
        return this;
      }

      private int queuePosition_ ;
      /**
       * optional int32 queue_position = 3;
       * @return Whether the queuePosition field is set.
       */
      @java.lang.Override
      public boolean hasQueuePosition() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional int32 queue_position = 3;
       * @return The queuePosition.
       */
      @java.lang.Override
      public int getQueuePosition() {
        return queuePosition_;
      }
      /**
       * optional int32 queue_position = 3;
       * @param value The queuePosition to set.
       * @return This builder for chaining.
       */
      public Builder setQueuePosition(int value) {

        queuePosition_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional int32 queue_position = 3;
       * @return This builder for chaining.
       */
      public Builder clearQueuePosition() {
        bitField0_ = (bitField0_ & ~0x00000004);
        queuePosition_ = 0;
        onChanged();
        return this;
      }

      private int queueSize_ ;
      /**
       * optional int32 queue_size = 4;
       * @return Whether the queueSize field is set.
       */
      @java.lang.Override
      public boolean hasQueueSize() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional int32 queue_size = 4;
       * @return The queueSize.
       */
      @java.lang.Override
      public int getQueueSize() {
        return queueSize_;
      }
      /**
       * optional int32 queue_size = 4;
       * @param value The queueSize to set.
       * @return This builder for chaining.
       */
      public Builder setQueueSize(int value) {

        queueSize_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional int32 queue_size = 4;
       * @return This builder for chaining.
       */
      public Builder clearQueueSize() {
        bitField0_ = (bitField0_ & ~0x00000008);
        queueSize_ = 0;
        onChanged();
        return this;
      }

      private int waitSeconds_ ;
      /**
       * optional int32 wait_seconds = 5;
       * @return Whether the waitSeconds field is set.
       */
      @java.lang.Override
      public boolean hasWaitSeconds() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional int32 wait_seconds = 5;
       * @return The waitSeconds.
       */
      @java.lang.Override
      public int getWaitSeconds() {
        return waitSeconds_;
      }
      /**
       * optional int32 wait_seconds = 5;
       * @param value The waitSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setWaitSeconds(int value) {

        waitSeconds_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional int32 wait_seconds = 5;
       * @return This builder for chaining.
       */
      public Builder clearWaitSeconds() {
        bitField0_ = (bitField0_ & ~0x00000010);
        waitSeconds_ = 0;
        onChanged();
        return this;
      }

      private int estimatedWaitSecondsRemaining_ ;
      /**
       * optional int32 estimated_wait_seconds_remaining = 6;
       * @return Whether the estimatedWaitSecondsRemaining field is set.
       */
      @java.lang.Override
      public boolean hasEstimatedWaitSecondsRemaining() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * optional int32 estimated_wait_seconds_remaining = 6;
       * @return The estimatedWaitSecondsRemaining.
       */
      @java.lang.Override
      public int getEstimatedWaitSecondsRemaining() {
        return estimatedWaitSecondsRemaining_;
      }
      /**
       * optional int32 estimated_wait_seconds_remaining = 6;
       * @param value The estimatedWaitSecondsRemaining to set.
       * @return This builder for chaining.
       */
      public Builder setEstimatedWaitSecondsRemaining(int value) {

        estimatedWaitSecondsRemaining_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * optional int32 estimated_wait_seconds_remaining = 6;
       * @return This builder for chaining.
       */
      public Builder clearEstimatedWaitSecondsRemaining() {
        bitField0_ = (bitField0_ & ~0x00000020);
        estimatedWaitSecondsRemaining_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgConnectionStatus)
    }

    // @@protoc_insertion_point(class_scope:CMsgConnectionStatus)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgConnectionStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgConnectionStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 subscriber = 1;
     * @return Whether the subscriber field is set.
     */
    boolean hasSubscriber();
    /**
     * optional fixed64 subscriber = 1;
     * @return The subscriber.
     */
    long getSubscriber();

    /**
     * optional fixed64 subscribe_to = 2;
     * @return Whether the subscribeTo field is set.
     */
    boolean hasSubscribeTo();
    /**
     * optional fixed64 subscribe_to = 2;
     * @return The subscribeTo.
     */
    long getSubscribeTo();

    /**
     * optional fixed64 sync_version = 3;
     * @return Whether the syncVersion field is set.
     */
    boolean hasSyncVersion();
    /**
     * optional fixed64 sync_version = 3;
     * @return The syncVersion.
     */
    long getSyncVersion();

    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    java.util.List 
        getHaveVersionsList();
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getHaveVersions(int index);
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    int getHaveVersionsCount();
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    java.util.List 
        getHaveVersionsOrBuilderList();
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder getHaveVersionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgGCToGCSOCacheSubscribe}
   */
  public static final class CMsgGCToGCSOCacheSubscribe extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCToGCSOCacheSubscribe)
      CMsgGCToGCSOCacheSubscribeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCToGCSOCacheSubscribe.class.getName());
    }
    // Use CMsgGCToGCSOCacheSubscribe.newBuilder() to construct.
    private CMsgGCToGCSOCacheSubscribe(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCToGCSOCacheSubscribe() {
      haveVersions_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.Builder.class);
    }

    public interface CMsgHaveVersionsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 service_id = 1;
       * @return Whether the serviceId field is set.
       */
      boolean hasServiceId();
      /**
       * optional uint32 service_id = 1;
       * @return The serviceId.
       */
      int getServiceId();

      /**
       * optional uint64 version = 2;
       * @return Whether the version field is set.
       */
      boolean hasVersion();
      /**
       * optional uint64 version = 2;
       * @return The version.
       */
      long getVersion();
    }
    /**
     * Protobuf type {@code CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions}
     */
    public static final class CMsgHaveVersions extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)
        CMsgHaveVersionsOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          CMsgHaveVersions.class.getName());
      }
      // Use CMsgHaveVersions.newBuilder() to construct.
      private CMsgHaveVersions(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private CMsgHaveVersions() {
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder.class);
      }

      private int bitField0_;
      public static final int SERVICE_ID_FIELD_NUMBER = 1;
      private int serviceId_ = 0;
      /**
       * optional uint32 service_id = 1;
       * @return Whether the serviceId field is set.
       */
      @java.lang.Override
      public boolean hasServiceId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional uint32 service_id = 1;
       * @return The serviceId.
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }

      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_ = 0L;
      /**
       * optional uint64 version = 2;
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 version = 2;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }

      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 (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, serviceId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt64(2, version_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, serviceId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt64Size(2, version_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)) {
          return super.equals(obj);
        }
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions) obj;

        if (hasServiceId() != other.hasServiceId()) return false;
        if (hasServiceId()) {
          if (getServiceId()
              != other.getServiceId()) return false;
        }
        if (hasVersion() != other.hasVersion()) return false;
        if (hasVersion()) {
          if (getVersion()
              != other.getVersion()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasServiceId()) {
          hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
          hash = (53 * hash) + getServiceId();
        }
        if (hasVersion()) {
          hash = (37 * hash) + VERSION_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getVersion());
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions 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.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder.class);
        }

        // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          serviceId_ = 0;
          version_ = 0L;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getDefaultInstanceForType() {
          return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.getDefaultInstance();
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions build() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions buildPartial() {
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.serviceId_ = serviceId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.version_ = version_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions) {
            return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions other) {
          if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.getDefaultInstance()) return this;
          if (other.hasServiceId()) {
            setServiceId(other.getServiceId());
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  serviceId_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  version_ = input.readUInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int serviceId_ ;
        /**
         * optional uint32 service_id = 1;
         * @return Whether the serviceId field is set.
         */
        @java.lang.Override
        public boolean hasServiceId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional uint32 service_id = 1;
         * @return The serviceId.
         */
        @java.lang.Override
        public int getServiceId() {
          return serviceId_;
        }
        /**
         * optional uint32 service_id = 1;
         * @param value The serviceId to set.
         * @return This builder for chaining.
         */
        public Builder setServiceId(int value) {

          serviceId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional uint32 service_id = 1;
         * @return This builder for chaining.
         */
        public Builder clearServiceId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          serviceId_ = 0;
          onChanged();
          return this;
        }

        private long version_ ;
        /**
         * optional uint64 version = 2;
         * @return Whether the version field is set.
         */
        @java.lang.Override
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * optional uint64 version = 2;
         * @return The version.
         */
        @java.lang.Override
        public long getVersion() {
          return version_;
        }
        /**
         * optional uint64 version = 2;
         * @param value The version to set.
         * @return This builder for chaining.
         */
        public Builder setVersion(long value) {

          version_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * optional uint64 version = 2;
         * @return This builder for chaining.
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)
      }

      // @@protoc_insertion_point(class_scope:CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions)
      private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions();
      }

      public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public CMsgHaveVersions parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int SUBSCRIBER_FIELD_NUMBER = 1;
    private long subscriber_ = 0L;
    /**
     * optional fixed64 subscriber = 1;
     * @return Whether the subscriber field is set.
     */
    @java.lang.Override
    public boolean hasSubscriber() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 subscriber = 1;
     * @return The subscriber.
     */
    @java.lang.Override
    public long getSubscriber() {
      return subscriber_;
    }

    public static final int SUBSCRIBE_TO_FIELD_NUMBER = 2;
    private long subscribeTo_ = 0L;
    /**
     * optional fixed64 subscribe_to = 2;
     * @return Whether the subscribeTo field is set.
     */
    @java.lang.Override
    public boolean hasSubscribeTo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 subscribe_to = 2;
     * @return The subscribeTo.
     */
    @java.lang.Override
    public long getSubscribeTo() {
      return subscribeTo_;
    }

    public static final int SYNC_VERSION_FIELD_NUMBER = 3;
    private long syncVersion_ = 0L;
    /**
     * optional fixed64 sync_version = 3;
     * @return Whether the syncVersion field is set.
     */
    @java.lang.Override
    public boolean hasSyncVersion() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional fixed64 sync_version = 3;
     * @return The syncVersion.
     */
    @java.lang.Override
    public long getSyncVersion() {
      return syncVersion_;
    }

    public static final int HAVE_VERSIONS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List haveVersions_;
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    @java.lang.Override
    public java.util.List getHaveVersionsList() {
      return haveVersions_;
    }
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    @java.lang.Override
    public java.util.List 
        getHaveVersionsOrBuilderList() {
      return haveVersions_;
    }
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    @java.lang.Override
    public int getHaveVersionsCount() {
      return haveVersions_.size();
    }
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getHaveVersions(int index) {
      return haveVersions_.get(index);
    }
    /**
     * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
     */
    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder getHaveVersionsOrBuilder(
        int index) {
      return haveVersions_.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 {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, subscriber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(2, subscribeTo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeFixed64(3, syncVersion_);
      }
      for (int i = 0; i < haveVersions_.size(); i++) {
        output.writeMessage(4, haveVersions_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, subscriber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, subscribeTo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(3, syncVersion_);
      }
      for (int i = 0; i < haveVersions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, haveVersions_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe) obj;

      if (hasSubscriber() != other.hasSubscriber()) return false;
      if (hasSubscriber()) {
        if (getSubscriber()
            != other.getSubscriber()) return false;
      }
      if (hasSubscribeTo() != other.hasSubscribeTo()) return false;
      if (hasSubscribeTo()) {
        if (getSubscribeTo()
            != other.getSubscribeTo()) return false;
      }
      if (hasSyncVersion() != other.hasSyncVersion()) return false;
      if (hasSyncVersion()) {
        if (getSyncVersion()
            != other.getSyncVersion()) return false;
      }
      if (!getHaveVersionsList()
          .equals(other.getHaveVersionsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSubscriber()) {
        hash = (37 * hash) + SUBSCRIBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSubscriber());
      }
      if (hasSubscribeTo()) {
        hash = (37 * hash) + SUBSCRIBE_TO_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSubscribeTo());
      }
      if (hasSyncVersion()) {
        hash = (37 * hash) + SYNC_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSyncVersion());
      }
      if (getHaveVersionsCount() > 0) {
        hash = (37 * hash) + HAVE_VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getHaveVersionsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCToGCSOCacheSubscribe}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCToGCSOCacheSubscribe)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        subscriber_ = 0L;
        subscribeTo_ = 0L;
        syncVersion_ = 0L;
        if (haveVersionsBuilder_ == null) {
          haveVersions_ = java.util.Collections.emptyList();
        } else {
          haveVersions_ = null;
          haveVersionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheSubscribe_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe result) {
        if (haveVersionsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            haveVersions_ = java.util.Collections.unmodifiableList(haveVersions_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.haveVersions_ = haveVersions_;
        } else {
          result.haveVersions_ = haveVersionsBuilder_.build();
        }
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.subscriber_ = subscriber_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.subscribeTo_ = subscribeTo_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.syncVersion_ = syncVersion_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.getDefaultInstance()) return this;
        if (other.hasSubscriber()) {
          setSubscriber(other.getSubscriber());
        }
        if (other.hasSubscribeTo()) {
          setSubscribeTo(other.getSubscribeTo());
        }
        if (other.hasSyncVersion()) {
          setSyncVersion(other.getSyncVersion());
        }
        if (haveVersionsBuilder_ == null) {
          if (!other.haveVersions_.isEmpty()) {
            if (haveVersions_.isEmpty()) {
              haveVersions_ = other.haveVersions_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureHaveVersionsIsMutable();
              haveVersions_.addAll(other.haveVersions_);
            }
            onChanged();
          }
        } else {
          if (!other.haveVersions_.isEmpty()) {
            if (haveVersionsBuilder_.isEmpty()) {
              haveVersionsBuilder_.dispose();
              haveVersionsBuilder_ = null;
              haveVersions_ = other.haveVersions_;
              bitField0_ = (bitField0_ & ~0x00000008);
              haveVersionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHaveVersionsFieldBuilder() : null;
            } else {
              haveVersionsBuilder_.addAllMessages(other.haveVersions_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                subscriber_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                subscribeTo_ = input.readFixed64();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 25: {
                syncVersion_ = input.readFixed64();
                bitField0_ |= 0x00000004;
                break;
              } // case 25
              case 34: {
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions m =
                    input.readMessage(
                        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.parser(),
                        extensionRegistry);
                if (haveVersionsBuilder_ == null) {
                  ensureHaveVersionsIsMutable();
                  haveVersions_.add(m);
                } else {
                  haveVersionsBuilder_.addMessage(m);
                }
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long subscriber_ ;
      /**
       * optional fixed64 subscriber = 1;
       * @return Whether the subscriber field is set.
       */
      @java.lang.Override
      public boolean hasSubscriber() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 subscriber = 1;
       * @return The subscriber.
       */
      @java.lang.Override
      public long getSubscriber() {
        return subscriber_;
      }
      /**
       * optional fixed64 subscriber = 1;
       * @param value The subscriber to set.
       * @return This builder for chaining.
       */
      public Builder setSubscriber(long value) {

        subscriber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 subscriber = 1;
       * @return This builder for chaining.
       */
      public Builder clearSubscriber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        subscriber_ = 0L;
        onChanged();
        return this;
      }

      private long subscribeTo_ ;
      /**
       * optional fixed64 subscribe_to = 2;
       * @return Whether the subscribeTo field is set.
       */
      @java.lang.Override
      public boolean hasSubscribeTo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed64 subscribe_to = 2;
       * @return The subscribeTo.
       */
      @java.lang.Override
      public long getSubscribeTo() {
        return subscribeTo_;
      }
      /**
       * optional fixed64 subscribe_to = 2;
       * @param value The subscribeTo to set.
       * @return This builder for chaining.
       */
      public Builder setSubscribeTo(long value) {

        subscribeTo_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 subscribe_to = 2;
       * @return This builder for chaining.
       */
      public Builder clearSubscribeTo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subscribeTo_ = 0L;
        onChanged();
        return this;
      }

      private long syncVersion_ ;
      /**
       * optional fixed64 sync_version = 3;
       * @return Whether the syncVersion field is set.
       */
      @java.lang.Override
      public boolean hasSyncVersion() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional fixed64 sync_version = 3;
       * @return The syncVersion.
       */
      @java.lang.Override
      public long getSyncVersion() {
        return syncVersion_;
      }
      /**
       * optional fixed64 sync_version = 3;
       * @param value The syncVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSyncVersion(long value) {

        syncVersion_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 sync_version = 3;
       * @return This builder for chaining.
       */
      public Builder clearSyncVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        syncVersion_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List haveVersions_ =
        java.util.Collections.emptyList();
      private void ensureHaveVersionsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          haveVersions_ = new java.util.ArrayList(haveVersions_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder> haveVersionsBuilder_;

      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public java.util.List getHaveVersionsList() {
        if (haveVersionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(haveVersions_);
        } else {
          return haveVersionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public int getHaveVersionsCount() {
        if (haveVersionsBuilder_ == null) {
          return haveVersions_.size();
        } else {
          return haveVersionsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions getHaveVersions(int index) {
        if (haveVersionsBuilder_ == null) {
          return haveVersions_.get(index);
        } else {
          return haveVersionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder setHaveVersions(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions value) {
        if (haveVersionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHaveVersionsIsMutable();
          haveVersions_.set(index, value);
          onChanged();
        } else {
          haveVersionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder setHaveVersions(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder builderForValue) {
        if (haveVersionsBuilder_ == null) {
          ensureHaveVersionsIsMutable();
          haveVersions_.set(index, builderForValue.build());
          onChanged();
        } else {
          haveVersionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder addHaveVersions(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions value) {
        if (haveVersionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHaveVersionsIsMutable();
          haveVersions_.add(value);
          onChanged();
        } else {
          haveVersionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder addHaveVersions(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions value) {
        if (haveVersionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHaveVersionsIsMutable();
          haveVersions_.add(index, value);
          onChanged();
        } else {
          haveVersionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder addHaveVersions(
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder builderForValue) {
        if (haveVersionsBuilder_ == null) {
          ensureHaveVersionsIsMutable();
          haveVersions_.add(builderForValue.build());
          onChanged();
        } else {
          haveVersionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder addHaveVersions(
          int index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder builderForValue) {
        if (haveVersionsBuilder_ == null) {
          ensureHaveVersionsIsMutable();
          haveVersions_.add(index, builderForValue.build());
          onChanged();
        } else {
          haveVersionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder addAllHaveVersions(
          java.lang.Iterable values) {
        if (haveVersionsBuilder_ == null) {
          ensureHaveVersionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, haveVersions_);
          onChanged();
        } else {
          haveVersionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder clearHaveVersions() {
        if (haveVersionsBuilder_ == null) {
          haveVersions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          haveVersionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public Builder removeHaveVersions(int index) {
        if (haveVersionsBuilder_ == null) {
          ensureHaveVersionsIsMutable();
          haveVersions_.remove(index);
          onChanged();
        } else {
          haveVersionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder getHaveVersionsBuilder(
          int index) {
        return getHaveVersionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder getHaveVersionsOrBuilder(
          int index) {
        if (haveVersionsBuilder_ == null) {
          return haveVersions_.get(index);  } else {
          return haveVersionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public java.util.List 
           getHaveVersionsOrBuilderList() {
        if (haveVersionsBuilder_ != null) {
          return haveVersionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(haveVersions_);
        }
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder addHaveVersionsBuilder() {
        return getHaveVersionsFieldBuilder().addBuilder(
            in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.getDefaultInstance());
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder addHaveVersionsBuilder(
          int index) {
        return getHaveVersionsFieldBuilder().addBuilder(
            index, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.getDefaultInstance());
      }
      /**
       * repeated .CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions have_versions = 4;
       */
      public java.util.List 
           getHaveVersionsBuilderList() {
        return getHaveVersionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder> 
          getHaveVersionsFieldBuilder() {
        if (haveVersionsBuilder_ == null) {
          haveVersionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersions.Builder, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe.CMsgHaveVersionsOrBuilder>(
                  haveVersions_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          haveVersions_ = null;
        }
        return haveVersionsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCToGCSOCacheSubscribe)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCToGCSOCacheSubscribe)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCToGCSOCacheSubscribe parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheSubscribe getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional fixed64 subscriber = 1;
     * @return Whether the subscriber field is set.
     */
    boolean hasSubscriber();
    /**
     * optional fixed64 subscriber = 1;
     * @return The subscriber.
     */
    long getSubscriber();

    /**
     * optional fixed64 unsubscribe_from = 2;
     * @return Whether the unsubscribeFrom field is set.
     */
    boolean hasUnsubscribeFrom();
    /**
     * optional fixed64 unsubscribe_from = 2;
     * @return The unsubscribeFrom.
     */
    long getUnsubscribeFrom();
  }
  /**
   * Protobuf type {@code CMsgGCToGCSOCacheUnsubscribe}
   */
  public static final class CMsgGCToGCSOCacheUnsubscribe extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCToGCSOCacheUnsubscribe)
      CMsgGCToGCSOCacheUnsubscribeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCToGCSOCacheUnsubscribe.class.getName());
    }
    // Use CMsgGCToGCSOCacheUnsubscribe.newBuilder() to construct.
    private CMsgGCToGCSOCacheUnsubscribe(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCToGCSOCacheUnsubscribe() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheUnsubscribe_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.Builder.class);
    }

    private int bitField0_;
    public static final int SUBSCRIBER_FIELD_NUMBER = 1;
    private long subscriber_ = 0L;
    /**
     * optional fixed64 subscriber = 1;
     * @return Whether the subscriber field is set.
     */
    @java.lang.Override
    public boolean hasSubscriber() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional fixed64 subscriber = 1;
     * @return The subscriber.
     */
    @java.lang.Override
    public long getSubscriber() {
      return subscriber_;
    }

    public static final int UNSUBSCRIBE_FROM_FIELD_NUMBER = 2;
    private long unsubscribeFrom_ = 0L;
    /**
     * optional fixed64 unsubscribe_from = 2;
     * @return Whether the unsubscribeFrom field is set.
     */
    @java.lang.Override
    public boolean hasUnsubscribeFrom() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional fixed64 unsubscribe_from = 2;
     * @return The unsubscribeFrom.
     */
    @java.lang.Override
    public long getUnsubscribeFrom() {
      return unsubscribeFrom_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeFixed64(1, subscriber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeFixed64(2, unsubscribeFrom_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(1, subscriber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, unsubscribeFrom_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe) obj;

      if (hasSubscriber() != other.hasSubscriber()) return false;
      if (hasSubscriber()) {
        if (getSubscriber()
            != other.getSubscriber()) return false;
      }
      if (hasUnsubscribeFrom() != other.hasUnsubscribeFrom()) return false;
      if (hasUnsubscribeFrom()) {
        if (getUnsubscribeFrom()
            != other.getUnsubscribeFrom()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSubscriber()) {
        hash = (37 * hash) + SUBSCRIBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSubscriber());
      }
      if (hasUnsubscribeFrom()) {
        hash = (37 * hash) + UNSUBSCRIBE_FROM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUnsubscribeFrom());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCToGCSOCacheUnsubscribe}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCToGCSOCacheUnsubscribe)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheUnsubscribe_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        subscriber_ = 0L;
        unsubscribeFrom_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.subscriber_ = subscriber_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.unsubscribeFrom_ = unsubscribeFrom_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe.getDefaultInstance()) return this;
        if (other.hasSubscriber()) {
          setSubscriber(other.getSubscriber());
        }
        if (other.hasUnsubscribeFrom()) {
          setUnsubscribeFrom(other.getUnsubscribeFrom());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                subscriber_ = input.readFixed64();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                unsubscribeFrom_ = input.readFixed64();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long subscriber_ ;
      /**
       * optional fixed64 subscriber = 1;
       * @return Whether the subscriber field is set.
       */
      @java.lang.Override
      public boolean hasSubscriber() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional fixed64 subscriber = 1;
       * @return The subscriber.
       */
      @java.lang.Override
      public long getSubscriber() {
        return subscriber_;
      }
      /**
       * optional fixed64 subscriber = 1;
       * @param value The subscriber to set.
       * @return This builder for chaining.
       */
      public Builder setSubscriber(long value) {

        subscriber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 subscriber = 1;
       * @return This builder for chaining.
       */
      public Builder clearSubscriber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        subscriber_ = 0L;
        onChanged();
        return this;
      }

      private long unsubscribeFrom_ ;
      /**
       * optional fixed64 unsubscribe_from = 2;
       * @return Whether the unsubscribeFrom field is set.
       */
      @java.lang.Override
      public boolean hasUnsubscribeFrom() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional fixed64 unsubscribe_from = 2;
       * @return The unsubscribeFrom.
       */
      @java.lang.Override
      public long getUnsubscribeFrom() {
        return unsubscribeFrom_;
      }
      /**
       * optional fixed64 unsubscribe_from = 2;
       * @param value The unsubscribeFrom to set.
       * @return This builder for chaining.
       */
      public Builder setUnsubscribeFrom(long value) {

        unsubscribeFrom_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 unsubscribe_from = 2;
       * @return This builder for chaining.
       */
      public Builder clearUnsubscribeFrom() {
        bitField0_ = (bitField0_ & ~0x00000002);
        unsubscribeFrom_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCToGCSOCacheUnsubscribe)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCToGCSOCacheUnsubscribe)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCToGCSOCacheUnsubscribe parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCToGCSOCacheUnsubscribe getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CMsgGCClientPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgGCClientPing)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CMsgGCClientPing}
   */
  public static final class CMsgGCClientPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgGCClientPing)
      CMsgGCClientPingOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CMsgGCClientPing.class.getName());
    }
    // Use CMsgGCClientPing.newBuilder() to construct.
    private CMsgGCClientPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CMsgGCClientPing() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCClientPing_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCClientPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing)) {
        return super.equals(obj);
      }
      in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing other = (in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgGCClientPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgGCClientPing)
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCClientPing_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCClientPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.class, in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.Builder.class);
      }

      // Construct using in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.internal_static_CMsgGCClientPing_descriptor;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing getDefaultInstanceForType() {
        return in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.getDefaultInstance();
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing build() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing buildPartial() {
        in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing result = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing) {
          return mergeFrom((in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing other) {
        if (other == in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgGCClientPing)
    }

    // @@protoc_insertion_point(class_scope:CMsgGCClientPing)
    private static final in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing();
    }

    public static in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CMsgGCClientPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public in.dragonbra.javasteam.protobufs.tf.GcsdkGcmessages.CMsgGCClientPing getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOIDOwner_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOIDOwner_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOSingleObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOSingleObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOMultipleObjects_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOMultipleObjects_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOMultipleObjects_SingleObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOMultipleObjects_SingleObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheSubscribed_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheSubscribed_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheSubscribed_SubscribedType_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheSubscribedUpToDate_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheSubscribedUpToDate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheUnsubscribed_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheUnsubscribed_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheSubscriptionCheck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheSubscriptionCheck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheSubscriptionRefresh_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheSubscriptionRefresh_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheVersion_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheVersion_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCMultiplexMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCMultiplexMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgMasterAck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgMasterAck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgMasterAck_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgMasterAck_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgMasterStartupComplete_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgMasterStartupComplete_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgRouted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgRouted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGCToGCMsgRoutedReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGCToGCMsgRoutedReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCUpdateSubGCSessionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCRequestSubGCSessionInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCRequestSubGCSessionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCRequestSubGCSessionInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCToGCIncrementRecruitmentLevel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgSOCacheHaveVersion_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgSOCacheHaveVersion_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgConnectionStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgConnectionStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCToGCSOCacheSubscribe_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCToGCSOCacheSubscribe_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCToGCSOCacheUnsubscribe_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgGCClientPing_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgGCClientPing_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:in/dragonbra/javasteam/protobufs/tf/gc" +
      "sdk_gcmessages.proto\0327in/dragonbra/javas" +
      "team/protobufs/tf/steammessages.proto\")\n" +
      "\rCMsgSOIDOwner\022\014\n\004type\030\001 \001(\r\022\n\n\002id\030\002 \001(\004" +
      "\"\222\001\n\022CMsgSOSingleObject\022\r\n\005owner\030\001 \001(\006\022\017" +
      "\n\007type_id\030\002 \001(\005\022\023\n\013object_data\030\003 \001(\014\022\017\n\007" +
      "version\030\004 \001(\006\022\"\n\nowner_soid\030\005 \001(\0132\016.CMsg" +
      "SOIDOwner\022\022\n\nservice_id\030\006 \001(\r\"\333\001\n\025CMsgSO" +
      "MultipleObjects\022\r\n\005owner\030\001 \001(\006\0224\n\007object" +
      "s\030\002 \003(\0132#.CMsgSOMultipleObjects.SingleOb" +
      "ject\022\017\n\007version\030\003 \001(\006\022\"\n\nowner_soid\030\006 \001(" +
      "\0132\016.CMsgSOIDOwner\022\022\n\nservice_id\030\007 \001(\r\0324\n" +
      "\014SingleObject\022\017\n\007type_id\030\001 \001(\005\022\023\n\013object" +
      "_data\030\002 \001(\014\"\213\002\n\025CMsgSOCacheSubscribed\022\r\n" +
      "\005owner\030\001 \001(\006\0226\n\007objects\030\002 \003(\0132%.CMsgSOCa" +
      "cheSubscribed.SubscribedType\022\017\n\007version\030" +
      "\003 \001(\006\022\"\n\nowner_soid\030\004 \001(\0132\016.CMsgSOIDOwne" +
      "r\022\022\n\nservice_id\030\005 \001(\r\022\024\n\014service_list\030\006 " +
      "\003(\r\022\024\n\014sync_version\030\007 \001(\006\0326\n\016SubscribedT" +
      "ype\022\017\n\007type_id\030\001 \001(\005\022\023\n\013object_data\030\002 \003(" +
      "\014\"\224\001\n\035CMsgSOCacheSubscribedUpToDate\022\017\n\007v" +
      "ersion\030\001 \001(\006\022\"\n\nowner_soid\030\002 \001(\0132\016.CMsgS" +
      "OIDOwner\022\022\n\nservice_id\030\003 \001(\r\022\024\n\014service_" +
      "list\030\004 \003(\r\022\024\n\014sync_version\030\005 \001(\006\"(\n\027CMsg" +
      "SOCacheUnsubscribed\022\r\n\005owner\030\001 \001(\006\"\242\001\n\034C" +
      "MsgSOCacheSubscriptionCheck\022\r\n\005owner\030\001 \001" +
      "(\006\022\017\n\007version\030\002 \001(\006\022\"\n\nowner_soid\030\003 \001(\0132" +
      "\016.CMsgSOIDOwner\022\022\n\nservice_id\030\004 \001(\r\022\024\n\014s" +
      "ervice_list\030\005 \003(\r\022\024\n\014sync_version\030\006 \001(\006\"" +
      "S\n\036CMsgSOCacheSubscriptionRefresh\022\r\n\005own" +
      "er\030\001 \001(\006\022\"\n\nowner_soid\030\002 \001(\0132\016.CMsgSOIDO" +
      "wner\"%\n\022CMsgSOCacheVersion\022\017\n\007version\030\001 " +
      "\001(\006\"L\n\026CMsgGCMultiplexMessage\022\017\n\007msgtype" +
      "\030\001 \001(\r\022\017\n\007payload\030\002 \001(\014\022\020\n\010steamids\030\003 \003(" +
      "\006\"l\n\023CGCToGCMsgMasterAck\022\021\n\tdir_index\030\001 " +
      "\001(\r\022\024\n\014machine_name\030\003 \001(\t\022\024\n\014process_nam" +
      "e\030\004 \001(\t\022\026\n\016type_instances\030\005 \003(\r\"2\n\034CGCTo" +
      "GCMsgMasterAck_Response\022\022\n\007eresult\030\001 \001(\005" +
      ":\0012\"\216\001\n\037CGCToGCMsgMasterStartupComplete\022" +
      "8\n\007gc_info\030\001 \003(\0132\'.CGCToGCMsgMasterStart" +
      "upComplete.GCInfo\0321\n\006GCInfo\022\021\n\tdir_index" +
      "\030\001 \001(\r\022\024\n\014machine_name\030\002 \001(\t\"L\n\020CGCToGCM" +
      "sgRouted\022\020\n\010msg_type\030\001 \001(\r\022\021\n\tsender_id\030" +
      "\002 \001(\006\022\023\n\013net_message\030\003 \001(\014\">\n\025CGCToGCMsg" +
      "RoutedReply\022\020\n\010msg_type\030\001 \001(\r\022\023\n\013net_mes" +
      "sage\030\002 \001(\014\"\225\001\n\034CMsgGCUpdateSubGCSessionI" +
      "nfo\0229\n\007updates\030\001 \003(\0132(.CMsgGCUpdateSubGC" +
      "SessionInfo.CMsgUpdate\032:\n\nCMsgUpdate\022\017\n\007" +
      "steamid\030\001 \001(\006\022\n\n\002ip\030\002 \001(\007\022\017\n\007trusted\030\003 \001" +
      "(\010\"0\n\035CMsgGCRequestSubGCSessionInfo\022\017\n\007s" +
      "teamid\030\001 \001(\006\"D\n%CMsgGCRequestSubGCSessio" +
      "nInfoResponse\022\n\n\002ip\030\001 \001(\007\022\017\n\007trusted\030\002 \001" +
      "(\010\"6\n#CMsgGCToGCIncrementRecruitmentLeve" +
      "l\022\017\n\007steamid\030\001 \001(\006\"[\n\026CMsgSOCacheHaveVer" +
      "sion\022\034\n\004soid\030\001 \001(\0132\016.CMsgSOIDOwner\022\017\n\007ve" +
      "rsion\030\002 \001(\006\022\022\n\nservice_id\030\003 \001(\r\"\345\001\n\024CMsg" +
      "ConnectionStatus\022D\n\006status\030\001 \001(\0162\023.GCCon" +
      "nectionStatus:\037GCConnectionStatus_HAVE_S" +
      "ESSION\022\033\n\023client_session_need\030\002 \001(\r\022\026\n\016q" +
      "ueue_position\030\003 \001(\005\022\022\n\nqueue_size\030\004 \001(\005\022" +
      "\024\n\014wait_seconds\030\005 \001(\005\022(\n estimated_wait_" +
      "seconds_remaining\030\006 \001(\005\"\332\001\n\032CMsgGCToGCSO" +
      "CacheSubscribe\022\022\n\nsubscriber\030\001 \001(\006\022\024\n\014su" +
      "bscribe_to\030\002 \001(\006\022\024\n\014sync_version\030\003 \001(\006\022C" +
      "\n\rhave_versions\030\004 \003(\0132,.CMsgGCToGCSOCach" +
      "eSubscribe.CMsgHaveVersions\0327\n\020CMsgHaveV" +
      "ersions\022\022\n\nservice_id\030\001 \001(\r\022\017\n\007version\030\002" +
      " \001(\004\"L\n\034CMsgGCToGCSOCacheUnsubscribe\022\022\n\n" +
      "subscriber\030\001 \001(\006\022\030\n\020unsubscribe_from\030\002 \001" +
      "(\006\"\022\n\020CMsgGCClientPing*T\n\022PartnerAccount" +
      "Type\022\020\n\014PARTNER_NONE\020\000\022\031\n\025PARTNER_PERFEC" +
      "T_WORLD\020\001\022\021\n\rPARTNER_NEXON\020\002*\367\001\n\022GCConne" +
      "ctionStatus\022#\n\037GCConnectionStatus_HAVE_S" +
      "ESSION\020\000\022$\n GCConnectionStatus_GC_GOING_" +
      "DOWN\020\001\022!\n\035GCConnectionStatus_NO_SESSION\020" +
      "\002\0220\n,GCConnectionStatus_NO_SESSION_IN_LO" +
      "GON_QUEUE\020\003\022\037\n\033GCConnectionStatus_NO_STE" +
      "AM\020\004\022 \n\034GCConnectionStatus_SUSPENDED\020\005B*" +
      "\n#in.dragonbra.javasteam.protobufs.tfH\001\210" +
      "\001\000"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          in.dragonbra.javasteam.protobufs.tf.Steammessages.getDescriptor(),
        });
    internal_static_CMsgSOIDOwner_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_CMsgSOIDOwner_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOIDOwner_descriptor,
        new java.lang.String[] { "Type", "Id", });
    internal_static_CMsgSOSingleObject_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_CMsgSOSingleObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOSingleObject_descriptor,
        new java.lang.String[] { "Owner", "TypeId", "ObjectData", "Version", "OwnerSoid", "ServiceId", });
    internal_static_CMsgSOMultipleObjects_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_CMsgSOMultipleObjects_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOMultipleObjects_descriptor,
        new java.lang.String[] { "Owner", "Objects", "Version", "OwnerSoid", "ServiceId", });
    internal_static_CMsgSOMultipleObjects_SingleObject_descriptor =
      internal_static_CMsgSOMultipleObjects_descriptor.getNestedTypes().get(0);
    internal_static_CMsgSOMultipleObjects_SingleObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOMultipleObjects_SingleObject_descriptor,
        new java.lang.String[] { "TypeId", "ObjectData", });
    internal_static_CMsgSOCacheSubscribed_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_CMsgSOCacheSubscribed_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheSubscribed_descriptor,
        new java.lang.String[] { "Owner", "Objects", "Version", "OwnerSoid", "ServiceId", "ServiceList", "SyncVersion", });
    internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor =
      internal_static_CMsgSOCacheSubscribed_descriptor.getNestedTypes().get(0);
    internal_static_CMsgSOCacheSubscribed_SubscribedType_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheSubscribed_SubscribedType_descriptor,
        new java.lang.String[] { "TypeId", "ObjectData", });
    internal_static_CMsgSOCacheSubscribedUpToDate_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_CMsgSOCacheSubscribedUpToDate_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheSubscribedUpToDate_descriptor,
        new java.lang.String[] { "Version", "OwnerSoid", "ServiceId", "ServiceList", "SyncVersion", });
    internal_static_CMsgSOCacheUnsubscribed_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_CMsgSOCacheUnsubscribed_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheUnsubscribed_descriptor,
        new java.lang.String[] { "Owner", });
    internal_static_CMsgSOCacheSubscriptionCheck_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_CMsgSOCacheSubscriptionCheck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheSubscriptionCheck_descriptor,
        new java.lang.String[] { "Owner", "Version", "OwnerSoid", "ServiceId", "ServiceList", "SyncVersion", });
    internal_static_CMsgSOCacheSubscriptionRefresh_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_CMsgSOCacheSubscriptionRefresh_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheSubscriptionRefresh_descriptor,
        new java.lang.String[] { "Owner", "OwnerSoid", });
    internal_static_CMsgSOCacheVersion_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_CMsgSOCacheVersion_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheVersion_descriptor,
        new java.lang.String[] { "Version", });
    internal_static_CMsgGCMultiplexMessage_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_CMsgGCMultiplexMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCMultiplexMessage_descriptor,
        new java.lang.String[] { "Msgtype", "Payload", "Steamids", });
    internal_static_CGCToGCMsgMasterAck_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_CGCToGCMsgMasterAck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgMasterAck_descriptor,
        new java.lang.String[] { "DirIndex", "MachineName", "ProcessName", "TypeInstances", });
    internal_static_CGCToGCMsgMasterAck_Response_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_CGCToGCMsgMasterAck_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgMasterAck_Response_descriptor,
        new java.lang.String[] { "Eresult", });
    internal_static_CGCToGCMsgMasterStartupComplete_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_CGCToGCMsgMasterStartupComplete_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgMasterStartupComplete_descriptor,
        new java.lang.String[] { "GcInfo", });
    internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor =
      internal_static_CGCToGCMsgMasterStartupComplete_descriptor.getNestedTypes().get(0);
    internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgMasterStartupComplete_GCInfo_descriptor,
        new java.lang.String[] { "DirIndex", "MachineName", });
    internal_static_CGCToGCMsgRouted_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_CGCToGCMsgRouted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgRouted_descriptor,
        new java.lang.String[] { "MsgType", "SenderId", "NetMessage", });
    internal_static_CGCToGCMsgRoutedReply_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_CGCToGCMsgRoutedReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGCToGCMsgRoutedReply_descriptor,
        new java.lang.String[] { "MsgType", "NetMessage", });
    internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_CMsgGCUpdateSubGCSessionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor,
        new java.lang.String[] { "Updates", });
    internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor =
      internal_static_CMsgGCUpdateSubGCSessionInfo_descriptor.getNestedTypes().get(0);
    internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCUpdateSubGCSessionInfo_CMsgUpdate_descriptor,
        new java.lang.String[] { "Steamid", "Ip", "Trusted", });
    internal_static_CMsgGCRequestSubGCSessionInfo_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_CMsgGCRequestSubGCSessionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCRequestSubGCSessionInfo_descriptor,
        new java.lang.String[] { "Steamid", });
    internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_CMsgGCRequestSubGCSessionInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCRequestSubGCSessionInfoResponse_descriptor,
        new java.lang.String[] { "Ip", "Trusted", });
    internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_CMsgGCToGCIncrementRecruitmentLevel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCToGCIncrementRecruitmentLevel_descriptor,
        new java.lang.String[] { "Steamid", });
    internal_static_CMsgSOCacheHaveVersion_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_CMsgSOCacheHaveVersion_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgSOCacheHaveVersion_descriptor,
        new java.lang.String[] { "Soid", "Version", "ServiceId", });
    internal_static_CMsgConnectionStatus_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_CMsgConnectionStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgConnectionStatus_descriptor,
        new java.lang.String[] { "Status", "ClientSessionNeed", "QueuePosition", "QueueSize", "WaitSeconds", "EstimatedWaitSecondsRemaining", });
    internal_static_CMsgGCToGCSOCacheSubscribe_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_CMsgGCToGCSOCacheSubscribe_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCToGCSOCacheSubscribe_descriptor,
        new java.lang.String[] { "Subscriber", "SubscribeTo", "SyncVersion", "HaveVersions", });
    internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor =
      internal_static_CMsgGCToGCSOCacheSubscribe_descriptor.getNestedTypes().get(0);
    internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCToGCSOCacheSubscribe_CMsgHaveVersions_descriptor,
        new java.lang.String[] { "ServiceId", "Version", });
    internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_CMsgGCToGCSOCacheUnsubscribe_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCToGCSOCacheUnsubscribe_descriptor,
        new java.lang.String[] { "Subscriber", "UnsubscribeFrom", });
    internal_static_CMsgGCClientPing_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_CMsgGCClientPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgGCClientPing_descriptor,
        new java.lang.String[] { });
    descriptor.resolveAllFeaturesImmutable();
    in.dragonbra.javasteam.protobufs.tf.Steammessages.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy