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

com.tencent.angel.protobuf.generated.ClientMasterServiceProtos Maven / Gradle / Ivy

There is a newer version: 3.2.0
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ClientMasterService.proto

package com.tencent.angel.protobuf.generated;

public final class ClientMasterServiceProtos {
  private ClientMasterServiceProtos() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code JobStateProto}
   */
  public enum JobStateProto
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * J_NEW = 1;
     */
    J_NEW(0, 1),
    /**
     * J_INITED = 2;
     */
    J_INITED(1, 2),
    /**
     * J_PREPARE_WORKERS = 3;
     */
    J_PREPARE_WORKERS(2, 3),
    /**
     * J_RUNNING = 4;
     */
    J_RUNNING(3, 4),
    /**
     * J_EXECUTE_SUCCESSED = 5;
     */
    J_EXECUTE_SUCCESSED(4, 5),
    /**
     * J_COMMITTING = 6;
     */
    J_COMMITTING(5, 6),
    /**
     * J_SUCCEEDED = 7;
     */
    J_SUCCEEDED(6, 7),
    /**
     * J_FAILED = 8;
     */
    J_FAILED(7, 8),
    /**
     * J_KILLED = 9;
     */
    J_KILLED(8, 9),
    ;

    /**
     * J_NEW = 1;
     */
    public static final int J_NEW_VALUE = 1;
    /**
     * J_INITED = 2;
     */
    public static final int J_INITED_VALUE = 2;
    /**
     * J_PREPARE_WORKERS = 3;
     */
    public static final int J_PREPARE_WORKERS_VALUE = 3;
    /**
     * J_RUNNING = 4;
     */
    public static final int J_RUNNING_VALUE = 4;
    /**
     * J_EXECUTE_SUCCESSED = 5;
     */
    public static final int J_EXECUTE_SUCCESSED_VALUE = 5;
    /**
     * J_COMMITTING = 6;
     */
    public static final int J_COMMITTING_VALUE = 6;
    /**
     * J_SUCCEEDED = 7;
     */
    public static final int J_SUCCEEDED_VALUE = 7;
    /**
     * J_FAILED = 8;
     */
    public static final int J_FAILED_VALUE = 8;
    /**
     * J_KILLED = 9;
     */
    public static final int J_KILLED_VALUE = 9;


    public final int getNumber() { return value; }

    public static JobStateProto valueOf(int value) {
      switch (value) {
        case 1: return J_NEW;
        case 2: return J_INITED;
        case 3: return J_PREPARE_WORKERS;
        case 4: return J_RUNNING;
        case 5: return J_EXECUTE_SUCCESSED;
        case 6: return J_COMMITTING;
        case 7: return J_SUCCEEDED;
        case 8: return J_FAILED;
        case 9: return J_KILLED;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:JobStateProto)
  }

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

    // optional string name = 1;
    /**
     * optional string name = 1;
     */
    boolean hasName();
    /**
     * optional string name = 1;
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional string displayName = 2;
    /**
     * optional string displayName = 2;
     */
    boolean hasDisplayName();
    /**
     * optional string displayName = 2;
     */
    java.lang.String getDisplayName();
    /**
     * optional string displayName = 2;
     */
    com.google.protobuf.ByteString
        getDisplayNameBytes();

    // optional int64 value = 3;
    /**
     * optional int64 value = 3;
     */
    boolean hasValue();
    /**
     * optional int64 value = 3;
     */
    long getValue();
  }
  /**
   * Protobuf type {@code CounterProto}
   */
  public static final class CounterProto extends
      com.google.protobuf.GeneratedMessage
      implements CounterProtoOrBuilder {
    // Use CounterProto.newBuilder() to construct.
    private CounterProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CounterProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CounterProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CounterProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              name_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              displayName_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              value_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string displayName = 2;
    public static final int DISPLAYNAME_FIELD_NUMBER = 2;
    private java.lang.Object displayName_;
    /**
     * optional string displayName = 2;
     */
    public boolean hasDisplayName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string displayName = 2;
     */
    public java.lang.String getDisplayName() {
      java.lang.Object ref = displayName_;
      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()) {
          displayName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string displayName = 2;
     */
    public com.google.protobuf.ByteString
        getDisplayNameBytes() {
      java.lang.Object ref = displayName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        displayName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int64 value = 3;
    public static final int VALUE_FIELD_NUMBER = 3;
    private long value_;
    /**
     * optional int64 value = 3;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int64 value = 3;
     */
    public long getValue() {
      return value_;
    }

    private void initFields() {
      name_ = "";
      displayName_ = "";
      value_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getDisplayNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, value_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getDisplayNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasDisplayName() == other.hasDisplayName());
      if (hasDisplayName()) {
        result = result && getDisplayName()
            .equals(other.getDisplayName());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && (getValue()
            == other.getValue());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasDisplayName()) {
        hash = (37 * hash) + DISPLAYNAME_FIELD_NUMBER;
        hash = (53 * hash) + getDisplayName().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + hashLong(getValue());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CounterProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        displayName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.displayName_ = displayName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasDisplayName()) {
          bitField0_ |= 0x00000002;
          displayName_ = other.displayName_;
          onChanged();
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string name = 1;
      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      // optional string displayName = 2;
      private java.lang.Object displayName_ = "";
      /**
       * optional string displayName = 2;
       */
      public boolean hasDisplayName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string displayName = 2;
       */
      public java.lang.String getDisplayName() {
        java.lang.Object ref = displayName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          displayName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string displayName = 2;
       */
      public com.google.protobuf.ByteString
          getDisplayNameBytes() {
        java.lang.Object ref = displayName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          displayName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string displayName = 2;
       */
      public Builder setDisplayName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        displayName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string displayName = 2;
       */
      public Builder clearDisplayName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        displayName_ = getDefaultInstance().getDisplayName();
        onChanged();
        return this;
      }
      /**
       * optional string displayName = 2;
       */
      public Builder setDisplayNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        displayName_ = value;
        onChanged();
        return this;
      }

      // optional int64 value = 3;
      private long value_ ;
      /**
       * optional int64 value = 3;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int64 value = 3;
       */
      public long getValue() {
        return value_;
      }
      /**
       * optional int64 value = 3;
       */
      public Builder setValue(long value) {
        bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 value = 3;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CounterProto)
    }

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

    // @@protoc_insertion_point(class_scope:CounterProto)
  }

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

    // optional string key = 1;
    /**
     * optional string key = 1;
     */
    boolean hasKey();
    /**
     * optional string key = 1;
     */
    java.lang.String getKey();
    /**
     * optional string key = 1;
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    // optional .CounterProto value = 2;
    /**
     * optional .CounterProto value = 2;
     */
    boolean hasValue();
    /**
     * optional .CounterProto value = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto getValue();
    /**
     * optional .CounterProto value = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code StringCounterMapProto}
   */
  public static final class StringCounterMapProto extends
      com.google.protobuf.GeneratedMessage
      implements StringCounterMapProtoOrBuilder {
    // Use StringCounterMapProto.newBuilder() to construct.
    private StringCounterMapProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StringCounterMapProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StringCounterMapProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StringCounterMapProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
            case 18: {
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StringCounterMapProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StringCounterMapProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * optional string key = 1;
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string key = 1;
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      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()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * optional string key = 1;
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional .CounterProto value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto value_;
    /**
     * optional .CounterProto value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CounterProto value = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto getValue() {
      return value_;
    }
    /**
     * optional .CounterProto value = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder getValueOrBuilder() {
      return value_;
    }

    private void initFields() {
      key_ = "";
      value_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey()
            .equals(other.getKey());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue()
            .equals(other.getValue());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

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

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StringCounterMapProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StringCounterMapProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StringCounterMapProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (valueBuilder_ == null) {
          value_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance();
        } else {
          valueBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StringCounterMapProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (valueBuilder_ == null) {
          result.value_ = value_;
        } else {
          result.value_ = valueBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string key = 1;
      private java.lang.Object key_ = "";
      /**
       * optional string key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string key = 1;
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string key = 1;
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string key = 1;
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string key = 1;
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * optional string key = 1;
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      // optional .CounterProto value = 2;
      private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto value_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder> valueBuilder_;
      /**
       * optional .CounterProto value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CounterProto value = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto getValue() {
        if (valueBuilder_ == null) {
          return value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * optional .CounterProto value = 2;
       */
      public Builder setValue(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CounterProto value = 2;
       */
      public Builder setValue(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CounterProto value = 2;
       */
      public Builder mergeValue(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              value_ != com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance()) {
            value_ =
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.newBuilder(value_).mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          valueBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CounterProto value = 2;
       */
      public Builder clearValue() {
        if (valueBuilder_ == null) {
          value_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.getDefaultInstance();
          onChanged();
        } else {
          valueBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CounterProto value = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder getValueBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getValueFieldBuilder().getBuilder();
      }
      /**
       * optional .CounterProto value = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_;
        }
      }
      /**
       * optional .CounterProto value = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder> 
          getValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterProtoOrBuilder>(
                  value_,
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:StringCounterMapProto)
    }

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

    // @@protoc_insertion_point(class_scope:StringCounterMapProto)
  }

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

    // optional string name = 1;
    /**
     * optional string name = 1;
     */
    boolean hasName();
    /**
     * optional string name = 1;
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional string displayName = 2;
    /**
     * optional string displayName = 2;
     */
    boolean hasDisplayName();
    /**
     * optional string displayName = 2;
     */
    java.lang.String getDisplayName();
    /**
     * optional string displayName = 2;
     */
    com.google.protobuf.ByteString
        getDisplayNameBytes();

    // repeated .StringCounterMapProto counters = 3;
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    java.util.List 
        getCountersList();
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto getCounters(int index);
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    int getCountersCount();
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    java.util.List 
        getCountersOrBuilderList();
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder getCountersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CounterGroupProto}
   */
  public static final class CounterGroupProto extends
      com.google.protobuf.GeneratedMessage
      implements CounterGroupProtoOrBuilder {
    // Use CounterGroupProto.newBuilder() to construct.
    private CounterGroupProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CounterGroupProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CounterGroupProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CounterGroupProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              name_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              displayName_ = input.readBytes();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                counters_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              counters_.add(input.readMessage(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          counters_ = java.util.Collections.unmodifiableList(counters_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterGroupProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterGroupProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string displayName = 2;
    public static final int DISPLAYNAME_FIELD_NUMBER = 2;
    private java.lang.Object displayName_;
    /**
     * optional string displayName = 2;
     */
    public boolean hasDisplayName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string displayName = 2;
     */
    public java.lang.String getDisplayName() {
      java.lang.Object ref = displayName_;
      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()) {
          displayName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string displayName = 2;
     */
    public com.google.protobuf.ByteString
        getDisplayNameBytes() {
      java.lang.Object ref = displayName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        displayName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated .StringCounterMapProto counters = 3;
    public static final int COUNTERS_FIELD_NUMBER = 3;
    private java.util.List counters_;
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    public java.util.List getCountersList() {
      return counters_;
    }
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    public java.util.List 
        getCountersOrBuilderList() {
      return counters_;
    }
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    public int getCountersCount() {
      return counters_.size();
    }
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto getCounters(int index) {
      return counters_.get(index);
    }
    /**
     * repeated .StringCounterMapProto counters = 3;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder getCountersOrBuilder(
        int index) {
      return counters_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getDisplayNameBytes());
      }
      for (int i = 0; i < counters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, counters_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasDisplayName() == other.hasDisplayName());
      if (hasDisplayName()) {
        result = result && getDisplayName()
            .equals(other.getDisplayName());
      }
      result = result && getCountersList()
          .equals(other.getCountersList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasDisplayName()) {
        hash = (37 * hash) + DISPLAYNAME_FIELD_NUMBER;
        hash = (53 * hash) + getDisplayName().hashCode();
      }
      if (getCountersCount() > 0) {
        hash = (37 * hash) + COUNTERS_FIELD_NUMBER;
        hash = (53 * hash) + getCountersList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CounterGroupProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterGroupProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterGroupProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        displayName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (countersBuilder_ == null) {
          counters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          countersBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CounterGroupProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.displayName_ = displayName_;
        if (countersBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            counters_ = java.util.Collections.unmodifiableList(counters_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.counters_ = counters_;
        } else {
          result.counters_ = countersBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasDisplayName()) {
          bitField0_ |= 0x00000002;
          displayName_ = other.displayName_;
          onChanged();
        }
        if (countersBuilder_ == null) {
          if (!other.counters_.isEmpty()) {
            if (counters_.isEmpty()) {
              counters_ = other.counters_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCountersIsMutable();
              counters_.addAll(other.counters_);
            }
            onChanged();
          }
        } else {
          if (!other.counters_.isEmpty()) {
            if (countersBuilder_.isEmpty()) {
              countersBuilder_.dispose();
              countersBuilder_ = null;
              counters_ = other.counters_;
              bitField0_ = (bitField0_ & ~0x00000004);
              countersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getCountersFieldBuilder() : null;
            } else {
              countersBuilder_.addAllMessages(other.counters_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CounterGroupProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string name = 1;
      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      // optional string displayName = 2;
      private java.lang.Object displayName_ = "";
      /**
       * optional string displayName = 2;
       */
      public boolean hasDisplayName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string displayName = 2;
       */
      public java.lang.String getDisplayName() {
        java.lang.Object ref = displayName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          displayName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string displayName = 2;
       */
      public com.google.protobuf.ByteString
          getDisplayNameBytes() {
        java.lang.Object ref = displayName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          displayName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string displayName = 2;
       */
      public Builder setDisplayName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        displayName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string displayName = 2;
       */
      public Builder clearDisplayName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        displayName_ = getDefaultInstance().getDisplayName();
        onChanged();
        return this;
      }
      /**
       * optional string displayName = 2;
       */
      public Builder setDisplayNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        displayName_ = value;
        onChanged();
        return this;
      }

      // repeated .StringCounterMapProto counters = 3;
      private java.util.List counters_ =
        java.util.Collections.emptyList();
      private void ensureCountersIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          counters_ = new java.util.ArrayList(counters_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder> countersBuilder_;

      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public java.util.List getCountersList() {
        if (countersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(counters_);
        } else {
          return countersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public int getCountersCount() {
        if (countersBuilder_ == null) {
          return counters_.size();
        } else {
          return countersBuilder_.getCount();
        }
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto getCounters(int index) {
        if (countersBuilder_ == null) {
          return counters_.get(index);
        } else {
          return countersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder setCounters(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto value) {
        if (countersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCountersIsMutable();
          counters_.set(index, value);
          onChanged();
        } else {
          countersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder setCounters(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder builderForValue) {
        if (countersBuilder_ == null) {
          ensureCountersIsMutable();
          counters_.set(index, builderForValue.build());
          onChanged();
        } else {
          countersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder addCounters(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto value) {
        if (countersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCountersIsMutable();
          counters_.add(value);
          onChanged();
        } else {
          countersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder addCounters(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto value) {
        if (countersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCountersIsMutable();
          counters_.add(index, value);
          onChanged();
        } else {
          countersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder addCounters(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder builderForValue) {
        if (countersBuilder_ == null) {
          ensureCountersIsMutable();
          counters_.add(builderForValue.build());
          onChanged();
        } else {
          countersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder addCounters(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder builderForValue) {
        if (countersBuilder_ == null) {
          ensureCountersIsMutable();
          counters_.add(index, builderForValue.build());
          onChanged();
        } else {
          countersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder addAllCounters(
          java.lang.Iterable values) {
        if (countersBuilder_ == null) {
          ensureCountersIsMutable();
          super.addAll(values, counters_);
          onChanged();
        } else {
          countersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder clearCounters() {
        if (countersBuilder_ == null) {
          counters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          countersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public Builder removeCounters(int index) {
        if (countersBuilder_ == null) {
          ensureCountersIsMutable();
          counters_.remove(index);
          onChanged();
        } else {
          countersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder getCountersBuilder(
          int index) {
        return getCountersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder getCountersOrBuilder(
          int index) {
        if (countersBuilder_ == null) {
          return counters_.get(index);  } else {
          return countersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public java.util.List 
           getCountersOrBuilderList() {
        if (countersBuilder_ != null) {
          return countersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(counters_);
        }
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder addCountersBuilder() {
        return getCountersFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.getDefaultInstance());
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder addCountersBuilder(
          int index) {
        return getCountersFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.getDefaultInstance());
      }
      /**
       * repeated .StringCounterMapProto counters = 3;
       */
      public java.util.List 
           getCountersBuilderList() {
        return getCountersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder> 
          getCountersFieldBuilder() {
        if (countersBuilder_ == null) {
          countersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StringCounterMapProtoOrBuilder>(
                  counters_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          counters_ = null;
        }
        return countersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CounterGroupProto)
    }

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

    // @@protoc_insertion_point(class_scope:CounterGroupProto)
  }

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

    // optional string appId = 1;
    /**
     * optional string appId = 1;
     */
    boolean hasAppId();
    /**
     * optional string appId = 1;
     */
    java.lang.String getAppId();
    /**
     * optional string appId = 1;
     */
    com.google.protobuf.ByteString
        getAppIdBytes();
  }
  /**
   * Protobuf type {@code GetJobReportRequest}
   */
  public static final class GetJobReportRequest extends
      com.google.protobuf.GeneratedMessage
      implements GetJobReportRequestOrBuilder {
    // Use GetJobReportRequest.newBuilder() to construct.
    private GetJobReportRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetJobReportRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetJobReportRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetJobReportRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              appId_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string appId = 1;
    public static final int APPID_FIELD_NUMBER = 1;
    private java.lang.Object appId_;
    /**
     * optional string appId = 1;
     */
    public boolean hasAppId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string appId = 1;
     */
    public java.lang.String getAppId() {
      java.lang.Object ref = appId_;
      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()) {
          appId_ = s;
        }
        return s;
      }
    }
    /**
     * optional string appId = 1;
     */
    public com.google.protobuf.ByteString
        getAppIdBytes() {
      java.lang.Object ref = appId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      appId_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest) obj;

      boolean result = true;
      result = result && (hasAppId() == other.hasAppId());
      if (hasAppId()) {
        result = result && getAppId()
            .equals(other.getAppId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasAppId()) {
        hash = (37 * hash) + APPID_FIELD_NUMBER;
        hash = (53 * hash) + getAppId().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetJobReportRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        appId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.appId_ = appId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.getDefaultInstance()) return this;
        if (other.hasAppId()) {
          bitField0_ |= 0x00000001;
          appId_ = other.appId_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string appId = 1;
      private java.lang.Object appId_ = "";
      /**
       * optional string appId = 1;
       */
      public boolean hasAppId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string appId = 1;
       */
      public java.lang.String getAppId() {
        java.lang.Object ref = appId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          appId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string appId = 1;
       */
      public com.google.protobuf.ByteString
          getAppIdBytes() {
        java.lang.Object ref = appId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string appId = 1;
       */
      public Builder setAppId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        appId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string appId = 1;
       */
      public Builder clearAppId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        appId_ = getDefaultInstance().getAppId();
        onChanged();
        return this;
      }
      /**
       * optional string appId = 1;
       */
      public Builder setAppIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        appId_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetJobReportRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetJobReportRequest)
  }

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

    // optional string appId = 1;
    /**
     * optional string appId = 1;
     */
    boolean hasAppId();
    /**
     * optional string appId = 1;
     */
    java.lang.String getAppId();
    /**
     * optional string appId = 1;
     */
    com.google.protobuf.ByteString
        getAppIdBytes();

    // optional .JobStateProto jobState = 2;
    /**
     * optional .JobStateProto jobState = 2;
     */
    boolean hasJobState();
    /**
     * optional .JobStateProto jobState = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto getJobState();

    // optional int32 curIteration = 3;
    /**
     * optional int32 curIteration = 3;
     */
    boolean hasCurIteration();
    /**
     * optional int32 curIteration = 3;
     */
    int getCurIteration();

    // optional int32 totalIteration = 4;
    /**
     * optional int32 totalIteration = 4;
     */
    boolean hasTotalIteration();
    /**
     * optional int32 totalIteration = 4;
     */
    int getTotalIteration();

    // optional float loss = 5;
    /**
     * optional float loss = 5;
     */
    boolean hasLoss();
    /**
     * optional float loss = 5;
     */
    float getLoss();

    // optional float success = 6;
    /**
     * optional float success = 6;
     */
    boolean hasSuccess();
    /**
     * optional float success = 6;
     */
    float getSuccess();

    // optional int64 startTime = 7;
    /**
     * optional int64 startTime = 7;
     */
    boolean hasStartTime();
    /**
     * optional int64 startTime = 7;
     */
    long getStartTime();

    // optional int64 finishTime = 8;
    /**
     * optional int64 finishTime = 8;
     */
    boolean hasFinishTime();
    /**
     * optional int64 finishTime = 8;
     */
    long getFinishTime();

    // optional string user = 9;
    /**
     * optional string user = 9;
     */
    boolean hasUser();
    /**
     * optional string user = 9;
     */
    java.lang.String getUser();
    /**
     * optional string user = 9;
     */
    com.google.protobuf.ByteString
        getUserBytes();

    // optional string jobName = 10;
    /**
     * optional string jobName = 10;
     */
    boolean hasJobName();
    /**
     * optional string jobName = 10;
     */
    java.lang.String getJobName();
    /**
     * optional string jobName = 10;
     */
    com.google.protobuf.ByteString
        getJobNameBytes();

    // optional string trackingUrl = 11;
    /**
     * optional string trackingUrl = 11;
     */
    boolean hasTrackingUrl();
    /**
     * optional string trackingUrl = 11;
     */
    java.lang.String getTrackingUrl();
    /**
     * optional string trackingUrl = 11;
     */
    com.google.protobuf.ByteString
        getTrackingUrlBytes();

    // optional string diagnostics = 12;
    /**
     * optional string diagnostics = 12;
     */
    boolean hasDiagnostics();
    /**
     * optional string diagnostics = 12;
     */
    java.lang.String getDiagnostics();
    /**
     * optional string diagnostics = 12;
     */
    com.google.protobuf.ByteString
        getDiagnosticsBytes();

    // optional int64 submitTime = 13;
    /**
     * optional int64 submitTime = 13;
     */
    boolean hasSubmitTime();
    /**
     * optional int64 submitTime = 13;
     */
    long getSubmitTime();

    // repeated .Pair metrics = 14;
    /**
     * repeated .Pair metrics = 14;
     */
    java.util.List 
        getMetricsList();
    /**
     * repeated .Pair metrics = 14;
     */
    com.tencent.angel.protobuf.generated.MLProtos.Pair getMetrics(int index);
    /**
     * repeated .Pair metrics = 14;
     */
    int getMetricsCount();
    /**
     * repeated .Pair metrics = 14;
     */
    java.util.List 
        getMetricsOrBuilderList();
    /**
     * repeated .Pair metrics = 14;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getMetricsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code JobReportProto}
   */
  public static final class JobReportProto extends
      com.google.protobuf.GeneratedMessage
      implements JobReportProtoOrBuilder {
    // Use JobReportProto.newBuilder() to construct.
    private JobReportProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JobReportProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public JobReportProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private JobReportProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              appId_ = input.readBytes();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto value = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                jobState_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              curIteration_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              totalIteration_ = input.readInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              loss_ = input.readFloat();
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              success_ = input.readFloat();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              startTime_ = input.readInt64();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              finishTime_ = input.readInt64();
              break;
            }
            case 74: {
              bitField0_ |= 0x00000100;
              user_ = input.readBytes();
              break;
            }
            case 82: {
              bitField0_ |= 0x00000200;
              jobName_ = input.readBytes();
              break;
            }
            case 90: {
              bitField0_ |= 0x00000400;
              trackingUrl_ = input.readBytes();
              break;
            }
            case 98: {
              bitField0_ |= 0x00000800;
              diagnostics_ = input.readBytes();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              submitTime_ = input.readInt64();
              break;
            }
            case 114: {
              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
                metrics_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00002000;
              }
              metrics_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.Pair.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
          metrics_ = java.util.Collections.unmodifiableList(metrics_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_JobReportProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_JobReportProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string appId = 1;
    public static final int APPID_FIELD_NUMBER = 1;
    private java.lang.Object appId_;
    /**
     * optional string appId = 1;
     */
    public boolean hasAppId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string appId = 1;
     */
    public java.lang.String getAppId() {
      java.lang.Object ref = appId_;
      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()) {
          appId_ = s;
        }
        return s;
      }
    }
    /**
     * optional string appId = 1;
     */
    public com.google.protobuf.ByteString
        getAppIdBytes() {
      java.lang.Object ref = appId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional .JobStateProto jobState = 2;
    public static final int JOBSTATE_FIELD_NUMBER = 2;
    private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto jobState_;
    /**
     * optional .JobStateProto jobState = 2;
     */
    public boolean hasJobState() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .JobStateProto jobState = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto getJobState() {
      return jobState_;
    }

    // optional int32 curIteration = 3;
    public static final int CURITERATION_FIELD_NUMBER = 3;
    private int curIteration_;
    /**
     * optional int32 curIteration = 3;
     */
    public boolean hasCurIteration() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 curIteration = 3;
     */
    public int getCurIteration() {
      return curIteration_;
    }

    // optional int32 totalIteration = 4;
    public static final int TOTALITERATION_FIELD_NUMBER = 4;
    private int totalIteration_;
    /**
     * optional int32 totalIteration = 4;
     */
    public boolean hasTotalIteration() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 totalIteration = 4;
     */
    public int getTotalIteration() {
      return totalIteration_;
    }

    // optional float loss = 5;
    public static final int LOSS_FIELD_NUMBER = 5;
    private float loss_;
    /**
     * optional float loss = 5;
     */
    public boolean hasLoss() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional float loss = 5;
     */
    public float getLoss() {
      return loss_;
    }

    // optional float success = 6;
    public static final int SUCCESS_FIELD_NUMBER = 6;
    private float success_;
    /**
     * optional float success = 6;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float success = 6;
     */
    public float getSuccess() {
      return success_;
    }

    // optional int64 startTime = 7;
    public static final int STARTTIME_FIELD_NUMBER = 7;
    private long startTime_;
    /**
     * optional int64 startTime = 7;
     */
    public boolean hasStartTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int64 startTime = 7;
     */
    public long getStartTime() {
      return startTime_;
    }

    // optional int64 finishTime = 8;
    public static final int FINISHTIME_FIELD_NUMBER = 8;
    private long finishTime_;
    /**
     * optional int64 finishTime = 8;
     */
    public boolean hasFinishTime() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int64 finishTime = 8;
     */
    public long getFinishTime() {
      return finishTime_;
    }

    // optional string user = 9;
    public static final int USER_FIELD_NUMBER = 9;
    private java.lang.Object user_;
    /**
     * optional string user = 9;
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional string user = 9;
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      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()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     * optional string user = 9;
     */
    public com.google.protobuf.ByteString
        getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string jobName = 10;
    public static final int JOBNAME_FIELD_NUMBER = 10;
    private java.lang.Object jobName_;
    /**
     * optional string jobName = 10;
     */
    public boolean hasJobName() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional string jobName = 10;
     */
    public java.lang.String getJobName() {
      java.lang.Object ref = jobName_;
      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()) {
          jobName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string jobName = 10;
     */
    public com.google.protobuf.ByteString
        getJobNameBytes() {
      java.lang.Object ref = jobName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        jobName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string trackingUrl = 11;
    public static final int TRACKINGURL_FIELD_NUMBER = 11;
    private java.lang.Object trackingUrl_;
    /**
     * optional string trackingUrl = 11;
     */
    public boolean hasTrackingUrl() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional string trackingUrl = 11;
     */
    public java.lang.String getTrackingUrl() {
      java.lang.Object ref = trackingUrl_;
      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()) {
          trackingUrl_ = s;
        }
        return s;
      }
    }
    /**
     * optional string trackingUrl = 11;
     */
    public com.google.protobuf.ByteString
        getTrackingUrlBytes() {
      java.lang.Object ref = trackingUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        trackingUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string diagnostics = 12;
    public static final int DIAGNOSTICS_FIELD_NUMBER = 12;
    private java.lang.Object diagnostics_;
    /**
     * optional string diagnostics = 12;
     */
    public boolean hasDiagnostics() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional string diagnostics = 12;
     */
    public java.lang.String getDiagnostics() {
      java.lang.Object ref = diagnostics_;
      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()) {
          diagnostics_ = s;
        }
        return s;
      }
    }
    /**
     * optional string diagnostics = 12;
     */
    public com.google.protobuf.ByteString
        getDiagnosticsBytes() {
      java.lang.Object ref = diagnostics_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        diagnostics_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int64 submitTime = 13;
    public static final int SUBMITTIME_FIELD_NUMBER = 13;
    private long submitTime_;
    /**
     * optional int64 submitTime = 13;
     */
    public boolean hasSubmitTime() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional int64 submitTime = 13;
     */
    public long getSubmitTime() {
      return submitTime_;
    }

    // repeated .Pair metrics = 14;
    public static final int METRICS_FIELD_NUMBER = 14;
    private java.util.List metrics_;
    /**
     * repeated .Pair metrics = 14;
     */
    public java.util.List getMetricsList() {
      return metrics_;
    }
    /**
     * repeated .Pair metrics = 14;
     */
    public java.util.List 
        getMetricsOrBuilderList() {
      return metrics_;
    }
    /**
     * repeated .Pair metrics = 14;
     */
    public int getMetricsCount() {
      return metrics_.size();
    }
    /**
     * repeated .Pair metrics = 14;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.Pair getMetrics(int index) {
      return metrics_.get(index);
    }
    /**
     * repeated .Pair metrics = 14;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getMetricsOrBuilder(
        int index) {
      return metrics_.get(index);
    }

    private void initFields() {
      appId_ = "";
      jobState_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto.J_NEW;
      curIteration_ = 0;
      totalIteration_ = 0;
      loss_ = 0F;
      success_ = 0F;
      startTime_ = 0L;
      finishTime_ = 0L;
      user_ = "";
      jobName_ = "";
      trackingUrl_ = "";
      diagnostics_ = "";
      submitTime_ = 0L;
      metrics_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getAppIdBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, jobState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, curIteration_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, totalIteration_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, loss_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(6, success_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt64(7, startTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt64(8, finishTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBytes(9, getUserBytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBytes(10, getJobNameBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBytes(11, getTrackingUrlBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBytes(12, getDiagnosticsBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt64(13, submitTime_);
      }
      for (int i = 0; i < metrics_.size(); i++) {
        output.writeMessage(14, metrics_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getAppIdBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, jobState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, curIteration_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, totalIteration_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, loss_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, success_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, startTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, finishTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(9, getUserBytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, getJobNameBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(11, getTrackingUrlBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(12, getDiagnosticsBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(13, submitTime_);
      }
      for (int i = 0; i < metrics_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, metrics_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto) obj;

      boolean result = true;
      result = result && (hasAppId() == other.hasAppId());
      if (hasAppId()) {
        result = result && getAppId()
            .equals(other.getAppId());
      }
      result = result && (hasJobState() == other.hasJobState());
      if (hasJobState()) {
        result = result &&
            (getJobState() == other.getJobState());
      }
      result = result && (hasCurIteration() == other.hasCurIteration());
      if (hasCurIteration()) {
        result = result && (getCurIteration()
            == other.getCurIteration());
      }
      result = result && (hasTotalIteration() == other.hasTotalIteration());
      if (hasTotalIteration()) {
        result = result && (getTotalIteration()
            == other.getTotalIteration());
      }
      result = result && (hasLoss() == other.hasLoss());
      if (hasLoss()) {
        result = result && (Float.floatToIntBits(getLoss())    == Float.floatToIntBits(other.getLoss()));
      }
      result = result && (hasSuccess() == other.hasSuccess());
      if (hasSuccess()) {
        result = result && (Float.floatToIntBits(getSuccess())    == Float.floatToIntBits(other.getSuccess()));
      }
      result = result && (hasStartTime() == other.hasStartTime());
      if (hasStartTime()) {
        result = result && (getStartTime()
            == other.getStartTime());
      }
      result = result && (hasFinishTime() == other.hasFinishTime());
      if (hasFinishTime()) {
        result = result && (getFinishTime()
            == other.getFinishTime());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser()
            .equals(other.getUser());
      }
      result = result && (hasJobName() == other.hasJobName());
      if (hasJobName()) {
        result = result && getJobName()
            .equals(other.getJobName());
      }
      result = result && (hasTrackingUrl() == other.hasTrackingUrl());
      if (hasTrackingUrl()) {
        result = result && getTrackingUrl()
            .equals(other.getTrackingUrl());
      }
      result = result && (hasDiagnostics() == other.hasDiagnostics());
      if (hasDiagnostics()) {
        result = result && getDiagnostics()
            .equals(other.getDiagnostics());
      }
      result = result && (hasSubmitTime() == other.hasSubmitTime());
      if (hasSubmitTime()) {
        result = result && (getSubmitTime()
            == other.getSubmitTime());
      }
      result = result && getMetricsList()
          .equals(other.getMetricsList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasAppId()) {
        hash = (37 * hash) + APPID_FIELD_NUMBER;
        hash = (53 * hash) + getAppId().hashCode();
      }
      if (hasJobState()) {
        hash = (37 * hash) + JOBSTATE_FIELD_NUMBER;
        hash = (53 * hash) + hashEnum(getJobState());
      }
      if (hasCurIteration()) {
        hash = (37 * hash) + CURITERATION_FIELD_NUMBER;
        hash = (53 * hash) + getCurIteration();
      }
      if (hasTotalIteration()) {
        hash = (37 * hash) + TOTALITERATION_FIELD_NUMBER;
        hash = (53 * hash) + getTotalIteration();
      }
      if (hasLoss()) {
        hash = (37 * hash) + LOSS_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getLoss());
      }
      if (hasSuccess()) {
        hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
        hash = (53 * hash) + Float.floatToIntBits(
            getSuccess());
      }
      if (hasStartTime()) {
        hash = (37 * hash) + STARTTIME_FIELD_NUMBER;
        hash = (53 * hash) + hashLong(getStartTime());
      }
      if (hasFinishTime()) {
        hash = (37 * hash) + FINISHTIME_FIELD_NUMBER;
        hash = (53 * hash) + hashLong(getFinishTime());
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasJobName()) {
        hash = (37 * hash) + JOBNAME_FIELD_NUMBER;
        hash = (53 * hash) + getJobName().hashCode();
      }
      if (hasTrackingUrl()) {
        hash = (37 * hash) + TRACKINGURL_FIELD_NUMBER;
        hash = (53 * hash) + getTrackingUrl().hashCode();
      }
      if (hasDiagnostics()) {
        hash = (37 * hash) + DIAGNOSTICS_FIELD_NUMBER;
        hash = (53 * hash) + getDiagnostics().hashCode();
      }
      if (hasSubmitTime()) {
        hash = (37 * hash) + SUBMITTIME_FIELD_NUMBER;
        hash = (53 * hash) + hashLong(getSubmitTime());
      }
      if (getMetricsCount() > 0) {
        hash = (37 * hash) + METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getMetricsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JobReportProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_JobReportProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_JobReportProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        appId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        jobState_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto.J_NEW;
        bitField0_ = (bitField0_ & ~0x00000002);
        curIteration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        totalIteration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loss_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        success_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        startTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        finishTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        jobName_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        trackingUrl_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        diagnostics_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        submitTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_JobReportProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.appId_ = appId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.jobState_ = jobState_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.curIteration_ = curIteration_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.totalIteration_ = totalIteration_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.loss_ = loss_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.success_ = success_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.startTime_ = startTime_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.finishTime_ = finishTime_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.jobName_ = jobName_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.trackingUrl_ = trackingUrl_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.diagnostics_ = diagnostics_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.submitTime_ = submitTime_;
        if (metricsBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)) {
            metrics_ = java.util.Collections.unmodifiableList(metrics_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.metrics_ = metrics_;
        } else {
          result.metrics_ = metricsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance()) return this;
        if (other.hasAppId()) {
          bitField0_ |= 0x00000001;
          appId_ = other.appId_;
          onChanged();
        }
        if (other.hasJobState()) {
          setJobState(other.getJobState());
        }
        if (other.hasCurIteration()) {
          setCurIteration(other.getCurIteration());
        }
        if (other.hasTotalIteration()) {
          setTotalIteration(other.getTotalIteration());
        }
        if (other.hasLoss()) {
          setLoss(other.getLoss());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        if (other.hasStartTime()) {
          setStartTime(other.getStartTime());
        }
        if (other.hasFinishTime()) {
          setFinishTime(other.getFinishTime());
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000100;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasJobName()) {
          bitField0_ |= 0x00000200;
          jobName_ = other.jobName_;
          onChanged();
        }
        if (other.hasTrackingUrl()) {
          bitField0_ |= 0x00000400;
          trackingUrl_ = other.trackingUrl_;
          onChanged();
        }
        if (other.hasDiagnostics()) {
          bitField0_ |= 0x00000800;
          diagnostics_ = other.diagnostics_;
          onChanged();
        }
        if (other.hasSubmitTime()) {
          setSubmitTime(other.getSubmitTime());
        }
        if (metricsBuilder_ == null) {
          if (!other.metrics_.isEmpty()) {
            if (metrics_.isEmpty()) {
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureMetricsIsMutable();
              metrics_.addAll(other.metrics_);
            }
            onChanged();
          }
        } else {
          if (!other.metrics_.isEmpty()) {
            if (metricsBuilder_.isEmpty()) {
              metricsBuilder_.dispose();
              metricsBuilder_ = null;
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00002000);
              metricsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMetricsFieldBuilder() : null;
            } else {
              metricsBuilder_.addAllMessages(other.metrics_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string appId = 1;
      private java.lang.Object appId_ = "";
      /**
       * optional string appId = 1;
       */
      public boolean hasAppId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string appId = 1;
       */
      public java.lang.String getAppId() {
        java.lang.Object ref = appId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          appId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string appId = 1;
       */
      public com.google.protobuf.ByteString
          getAppIdBytes() {
        java.lang.Object ref = appId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string appId = 1;
       */
      public Builder setAppId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        appId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string appId = 1;
       */
      public Builder clearAppId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        appId_ = getDefaultInstance().getAppId();
        onChanged();
        return this;
      }
      /**
       * optional string appId = 1;
       */
      public Builder setAppIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        appId_ = value;
        onChanged();
        return this;
      }

      // optional .JobStateProto jobState = 2;
      private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto jobState_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto.J_NEW;
      /**
       * optional .JobStateProto jobState = 2;
       */
      public boolean hasJobState() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .JobStateProto jobState = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto getJobState() {
        return jobState_;
      }
      /**
       * optional .JobStateProto jobState = 2;
       */
      public Builder setJobState(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        jobState_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .JobStateProto jobState = 2;
       */
      public Builder clearJobState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        jobState_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobStateProto.J_NEW;
        onChanged();
        return this;
      }

      // optional int32 curIteration = 3;
      private int curIteration_ ;
      /**
       * optional int32 curIteration = 3;
       */
      public boolean hasCurIteration() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 curIteration = 3;
       */
      public int getCurIteration() {
        return curIteration_;
      }
      /**
       * optional int32 curIteration = 3;
       */
      public Builder setCurIteration(int value) {
        bitField0_ |= 0x00000004;
        curIteration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 curIteration = 3;
       */
      public Builder clearCurIteration() {
        bitField0_ = (bitField0_ & ~0x00000004);
        curIteration_ = 0;
        onChanged();
        return this;
      }

      // optional int32 totalIteration = 4;
      private int totalIteration_ ;
      /**
       * optional int32 totalIteration = 4;
       */
      public boolean hasTotalIteration() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 totalIteration = 4;
       */
      public int getTotalIteration() {
        return totalIteration_;
      }
      /**
       * optional int32 totalIteration = 4;
       */
      public Builder setTotalIteration(int value) {
        bitField0_ |= 0x00000008;
        totalIteration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 totalIteration = 4;
       */
      public Builder clearTotalIteration() {
        bitField0_ = (bitField0_ & ~0x00000008);
        totalIteration_ = 0;
        onChanged();
        return this;
      }

      // optional float loss = 5;
      private float loss_ ;
      /**
       * optional float loss = 5;
       */
      public boolean hasLoss() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float loss = 5;
       */
      public float getLoss() {
        return loss_;
      }
      /**
       * optional float loss = 5;
       */
      public Builder setLoss(float value) {
        bitField0_ |= 0x00000010;
        loss_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float loss = 5;
       */
      public Builder clearLoss() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loss_ = 0F;
        onChanged();
        return this;
      }

      // optional float success = 6;
      private float success_ ;
      /**
       * optional float success = 6;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional float success = 6;
       */
      public float getSuccess() {
        return success_;
      }
      /**
       * optional float success = 6;
       */
      public Builder setSuccess(float value) {
        bitField0_ |= 0x00000020;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float success = 6;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000020);
        success_ = 0F;
        onChanged();
        return this;
      }

      // optional int64 startTime = 7;
      private long startTime_ ;
      /**
       * optional int64 startTime = 7;
       */
      public boolean hasStartTime() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int64 startTime = 7;
       */
      public long getStartTime() {
        return startTime_;
      }
      /**
       * optional int64 startTime = 7;
       */
      public Builder setStartTime(long value) {
        bitField0_ |= 0x00000040;
        startTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 startTime = 7;
       */
      public Builder clearStartTime() {
        bitField0_ = (bitField0_ & ~0x00000040);
        startTime_ = 0L;
        onChanged();
        return this;
      }

      // optional int64 finishTime = 8;
      private long finishTime_ ;
      /**
       * optional int64 finishTime = 8;
       */
      public boolean hasFinishTime() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int64 finishTime = 8;
       */
      public long getFinishTime() {
        return finishTime_;
      }
      /**
       * optional int64 finishTime = 8;
       */
      public Builder setFinishTime(long value) {
        bitField0_ |= 0x00000080;
        finishTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 finishTime = 8;
       */
      public Builder clearFinishTime() {
        bitField0_ = (bitField0_ & ~0x00000080);
        finishTime_ = 0L;
        onChanged();
        return this;
      }

      // optional string user = 9;
      private java.lang.Object user_ = "";
      /**
       * optional string user = 9;
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional string user = 9;
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          user_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string user = 9;
       */
      public com.google.protobuf.ByteString
          getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string user = 9;
       */
      public Builder setUser(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string user = 9;
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000100);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       * optional string user = 9;
       */
      public Builder setUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        user_ = value;
        onChanged();
        return this;
      }

      // optional string jobName = 10;
      private java.lang.Object jobName_ = "";
      /**
       * optional string jobName = 10;
       */
      public boolean hasJobName() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional string jobName = 10;
       */
      public java.lang.String getJobName() {
        java.lang.Object ref = jobName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          jobName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string jobName = 10;
       */
      public com.google.protobuf.ByteString
          getJobNameBytes() {
        java.lang.Object ref = jobName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jobName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string jobName = 10;
       */
      public Builder setJobName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        jobName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string jobName = 10;
       */
      public Builder clearJobName() {
        bitField0_ = (bitField0_ & ~0x00000200);
        jobName_ = getDefaultInstance().getJobName();
        onChanged();
        return this;
      }
      /**
       * optional string jobName = 10;
       */
      public Builder setJobNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        jobName_ = value;
        onChanged();
        return this;
      }

      // optional string trackingUrl = 11;
      private java.lang.Object trackingUrl_ = "";
      /**
       * optional string trackingUrl = 11;
       */
      public boolean hasTrackingUrl() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional string trackingUrl = 11;
       */
      public java.lang.String getTrackingUrl() {
        java.lang.Object ref = trackingUrl_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          trackingUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string trackingUrl = 11;
       */
      public com.google.protobuf.ByteString
          getTrackingUrlBytes() {
        java.lang.Object ref = trackingUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          trackingUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string trackingUrl = 11;
       */
      public Builder setTrackingUrl(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        trackingUrl_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string trackingUrl = 11;
       */
      public Builder clearTrackingUrl() {
        bitField0_ = (bitField0_ & ~0x00000400);
        trackingUrl_ = getDefaultInstance().getTrackingUrl();
        onChanged();
        return this;
      }
      /**
       * optional string trackingUrl = 11;
       */
      public Builder setTrackingUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        trackingUrl_ = value;
        onChanged();
        return this;
      }

      // optional string diagnostics = 12;
      private java.lang.Object diagnostics_ = "";
      /**
       * optional string diagnostics = 12;
       */
      public boolean hasDiagnostics() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional string diagnostics = 12;
       */
      public java.lang.String getDiagnostics() {
        java.lang.Object ref = diagnostics_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          diagnostics_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string diagnostics = 12;
       */
      public com.google.protobuf.ByteString
          getDiagnosticsBytes() {
        java.lang.Object ref = diagnostics_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          diagnostics_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string diagnostics = 12;
       */
      public Builder setDiagnostics(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        diagnostics_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string diagnostics = 12;
       */
      public Builder clearDiagnostics() {
        bitField0_ = (bitField0_ & ~0x00000800);
        diagnostics_ = getDefaultInstance().getDiagnostics();
        onChanged();
        return this;
      }
      /**
       * optional string diagnostics = 12;
       */
      public Builder setDiagnosticsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        diagnostics_ = value;
        onChanged();
        return this;
      }

      // optional int64 submitTime = 13;
      private long submitTime_ ;
      /**
       * optional int64 submitTime = 13;
       */
      public boolean hasSubmitTime() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional int64 submitTime = 13;
       */
      public long getSubmitTime() {
        return submitTime_;
      }
      /**
       * optional int64 submitTime = 13;
       */
      public Builder setSubmitTime(long value) {
        bitField0_ |= 0x00001000;
        submitTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 submitTime = 13;
       */
      public Builder clearSubmitTime() {
        bitField0_ = (bitField0_ & ~0x00001000);
        submitTime_ = 0L;
        onChanged();
        return this;
      }

      // repeated .Pair metrics = 14;
      private java.util.List metrics_ =
        java.util.Collections.emptyList();
      private void ensureMetricsIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          metrics_ = new java.util.ArrayList(metrics_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> metricsBuilder_;

      /**
       * repeated .Pair metrics = 14;
       */
      public java.util.List getMetricsList() {
        if (metricsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metrics_);
        } else {
          return metricsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public int getMetricsCount() {
        if (metricsBuilder_ == null) {
          return metrics_.size();
        } else {
          return metricsBuilder_.getCount();
        }
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair getMetrics(int index) {
        if (metricsBuilder_ == null) {
          return metrics_.get(index);
        } else {
          return metricsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder setMetrics(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.set(index, value);
          onChanged();
        } else {
          metricsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder setMetrics(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.set(index, builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder addMetrics(com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.add(value);
          onChanged();
        } else {
          metricsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder addMetrics(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.add(index, value);
          onChanged();
        } else {
          metricsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder addMetrics(
          com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.add(builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder addMetrics(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.add(index, builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder addAllMetrics(
          java.lang.Iterable values) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          super.addAll(values, metrics_);
          onChanged();
        } else {
          metricsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder clearMetrics() {
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public Builder removeMetrics(int index) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.remove(index);
          onChanged();
        } else {
          metricsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder getMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getMetricsOrBuilder(
          int index) {
        if (metricsBuilder_ == null) {
          return metrics_.get(index);  } else {
          return metricsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public java.util.List 
           getMetricsOrBuilderList() {
        if (metricsBuilder_ != null) {
          return metricsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metrics_);
        }
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addMetricsBuilder() {
        return getMetricsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair metrics = 14;
       */
      public java.util.List 
           getMetricsBuilderList() {
        return getMetricsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> 
          getMetricsFieldBuilder() {
        if (metricsBuilder_ == null) {
          metricsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder>(
                  metrics_,
                  ((bitField0_ & 0x00002000) == 0x00002000),
                  getParentForChildren(),
                  isClean());
          metrics_ = null;
        }
        return metricsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:JobReportProto)
    }

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

    // @@protoc_insertion_point(class_scope:JobReportProto)
  }

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

    // optional .JobReportProto jobReport = 1;
    /**
     * optional .JobReportProto jobReport = 1;
     */
    boolean hasJobReport();
    /**
     * optional .JobReportProto jobReport = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto getJobReport();
    /**
     * optional .JobReportProto jobReport = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder getJobReportOrBuilder();
  }
  /**
   * Protobuf type {@code GetJobReportResponse}
   */
  public static final class GetJobReportResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetJobReportResponseOrBuilder {
    // Use GetJobReportResponse.newBuilder() to construct.
    private GetJobReportResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetJobReportResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetJobReportResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // optional .JobReportProto jobReport = 1;
    public static final int JOBREPORT_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto jobReport_;
    /**
     * optional .JobReportProto jobReport = 1;
     */
    public boolean hasJobReport() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .JobReportProto jobReport = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto getJobReport() {
      return jobReport_;
    }
    /**
     * optional .JobReportProto jobReport = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder getJobReportOrBuilder() {
      return jobReport_;
    }

    private void initFields() {
      jobReport_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse) obj;

      boolean result = true;
      result = result && (hasJobReport() == other.hasJobReport());
      if (hasJobReport()) {
        result = result && getJobReport()
            .equals(other.getJobReport());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasJobReport()) {
        hash = (37 * hash) + JOBREPORT_FIELD_NUMBER;
        hash = (53 * hash) + getJobReport().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetJobReportResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (jobReportBuilder_ == null) {
          jobReport_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance();
        } else {
          jobReportBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetJobReportResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (jobReportBuilder_ == null) {
          result.jobReport_ = jobReport_;
        } else {
          result.jobReport_ = jobReportBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance()) return this;
        if (other.hasJobReport()) {
          mergeJobReport(other.getJobReport());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasJobReport()) {
          if (!getJobReport().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .JobReportProto jobReport = 1;
      private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto jobReport_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder> jobReportBuilder_;
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public boolean hasJobReport() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto getJobReport() {
        if (jobReportBuilder_ == null) {
          return jobReport_;
        } else {
          return jobReportBuilder_.getMessage();
        }
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public Builder setJobReport(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto value) {
        if (jobReportBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          jobReport_ = value;
          onChanged();
        } else {
          jobReportBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public Builder setJobReport(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder builderForValue) {
        if (jobReportBuilder_ == null) {
          jobReport_ = builderForValue.build();
          onChanged();
        } else {
          jobReportBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public Builder mergeJobReport(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto value) {
        if (jobReportBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              jobReport_ != com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance()) {
            jobReport_ =
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.newBuilder(jobReport_).mergeFrom(value).buildPartial();
          } else {
            jobReport_ = value;
          }
          onChanged();
        } else {
          jobReportBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public Builder clearJobReport() {
        if (jobReportBuilder_ == null) {
          jobReport_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.getDefaultInstance();
          onChanged();
        } else {
          jobReportBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder getJobReportBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getJobReportFieldBuilder().getBuilder();
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder getJobReportOrBuilder() {
        if (jobReportBuilder_ != null) {
          return jobReportBuilder_.getMessageOrBuilder();
        } else {
          return jobReport_;
        }
      }
      /**
       * optional .JobReportProto jobReport = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder> 
          getJobReportFieldBuilder() {
        if (jobReportBuilder_ == null) {
          jobReportBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.JobReportProtoOrBuilder>(
                  jobReport_,
                  getParentForChildren(),
                  isClean());
          jobReport_ = null;
        }
        return jobReportBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetJobReportResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetJobReportResponse)
  }

  public interface PingRequestOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code PingRequest}
   */
  public static final class PingRequest extends
      com.google.protobuf.GeneratedMessage
      implements PingRequestOrBuilder {
    // Use PingRequest.newBuilder() to construct.
    private PingRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PingRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PingRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PingRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PingRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PingRequest)
    }

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

    // @@protoc_insertion_point(class_scope:PingRequest)
  }

  public interface PingResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code PingResponse}
   */
  public static final class PingResponse extends
      com.google.protobuf.GeneratedMessage
      implements PingResponseOrBuilder {
    // Use PingResponse.newBuilder() to construct.
    private PingResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PingResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PingResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PingResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PingResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_PingResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PingResponse)
    }

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

    // @@protoc_insertion_point(class_scope:PingResponse)
  }

  public interface StartRequestOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code StartRequest}
   */
  public static final class StartRequest extends
      com.google.protobuf.GeneratedMessage
      implements StartRequestOrBuilder {
    // Use StartRequest.newBuilder() to construct.
    private StartRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StartRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StartRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartRequest)
    }

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

    // @@protoc_insertion_point(class_scope:StartRequest)
  }

  public interface StartResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code StartResponse}
   */
  public static final class StartResponse extends
      com.google.protobuf.GeneratedMessage
      implements StartResponseOrBuilder {
    // Use StartResponse.newBuilder() to construct.
    private StartResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StartResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StartResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StartResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartResponse)
    }

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

    // @@protoc_insertion_point(class_scope:StartResponse)
  }

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

    // required .ModelSaveContextProto saveContext = 1;
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    boolean hasSaveContext();
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto getSaveContext();
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder getSaveContextOrBuilder();
  }
  /**
   * Protobuf type {@code SaveRequest}
   */
  public static final class SaveRequest extends
      com.google.protobuf.GeneratedMessage
      implements SaveRequestOrBuilder {
    // Use SaveRequest.newBuilder() to construct.
    private SaveRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SaveRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SaveRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .ModelSaveContextProto saveContext = 1;
    public static final int SAVECONTEXT_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto saveContext_;
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    public boolean hasSaveContext() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto getSaveContext() {
      return saveContext_;
    }
    /**
     * required .ModelSaveContextProto saveContext = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder getSaveContextOrBuilder() {
      return saveContext_;
    }

    private void initFields() {
      saveContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest) obj;

      boolean result = true;
      result = result && (hasSaveContext() == other.hasSaveContext());
      if (hasSaveContext()) {
        result = result && getSaveContext()
            .equals(other.getSaveContext());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasSaveContext()) {
        hash = (37 * hash) + SAVECONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getSaveContext().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SaveRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (saveContextBuilder_ == null) {
          saveContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance();
        } else {
          saveContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (saveContextBuilder_ == null) {
          result.saveContext_ = saveContext_;
        } else {
          result.saveContext_ = saveContextBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.getDefaultInstance()) return this;
        if (other.hasSaveContext()) {
          mergeSaveContext(other.getSaveContext());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasSaveContext()) {
          
          return false;
        }
        if (!getSaveContext().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .ModelSaveContextProto saveContext = 1;
      private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto saveContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder> saveContextBuilder_;
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public boolean hasSaveContext() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto getSaveContext() {
        if (saveContextBuilder_ == null) {
          return saveContext_;
        } else {
          return saveContextBuilder_.getMessage();
        }
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public Builder setSaveContext(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto value) {
        if (saveContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          saveContext_ = value;
          onChanged();
        } else {
          saveContextBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public Builder setSaveContext(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder builderForValue) {
        if (saveContextBuilder_ == null) {
          saveContext_ = builderForValue.build();
          onChanged();
        } else {
          saveContextBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public Builder mergeSaveContext(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto value) {
        if (saveContextBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              saveContext_ != com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance()) {
            saveContext_ =
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.newBuilder(saveContext_).mergeFrom(value).buildPartial();
          } else {
            saveContext_ = value;
          }
          onChanged();
        } else {
          saveContextBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public Builder clearSaveContext() {
        if (saveContextBuilder_ == null) {
          saveContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance();
          onChanged();
        } else {
          saveContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder getSaveContextBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSaveContextFieldBuilder().getBuilder();
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder getSaveContextOrBuilder() {
        if (saveContextBuilder_ != null) {
          return saveContextBuilder_.getMessageOrBuilder();
        } else {
          return saveContext_;
        }
      }
      /**
       * required .ModelSaveContextProto saveContext = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder> 
          getSaveContextFieldBuilder() {
        if (saveContextBuilder_ == null) {
          saveContextBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder>(
                  saveContext_,
                  getParentForChildren(),
                  isClean());
          saveContext_ = null;
        }
        return saveContextBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SaveRequest)
    }

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

    // @@protoc_insertion_point(class_scope:SaveRequest)
  }

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

    // required string matrixName = 1;
    /**
     * required string matrixName = 1;
     */
    boolean hasMatrixName();
    /**
     * required string matrixName = 1;
     */
    java.lang.String getMatrixName();
    /**
     * required string matrixName = 1;
     */
    com.google.protobuf.ByteString
        getMatrixNameBytes();

    // required string formatClassName = 2;
    /**
     * required string formatClassName = 2;
     */
    boolean hasFormatClassName();
    /**
     * required string formatClassName = 2;
     */
    java.lang.String getFormatClassName();
    /**
     * required string formatClassName = 2;
     */
    com.google.protobuf.ByteString
        getFormatClassNameBytes();

    // repeated int32 rowIndexes = 3;
    /**
     * repeated int32 rowIndexes = 3;
     */
    java.util.List getRowIndexesList();
    /**
     * repeated int32 rowIndexes = 3;
     */
    int getRowIndexesCount();
    /**
     * repeated int32 rowIndexes = 3;
     */
    int getRowIndexes(int index);

    // repeated .Pair params = 4;
    /**
     * repeated .Pair params = 4;
     */
    java.util.List 
        getParamsList();
    /**
     * repeated .Pair params = 4;
     */
    com.tencent.angel.protobuf.generated.MLProtos.Pair getParams(int index);
    /**
     * repeated .Pair params = 4;
     */
    int getParamsCount();
    /**
     * repeated .Pair params = 4;
     */
    java.util.List 
        getParamsOrBuilderList();
    /**
     * repeated .Pair params = 4;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getParamsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code MatrixSaveContextProto}
   */
  public static final class MatrixSaveContextProto extends
      com.google.protobuf.GeneratedMessage
      implements MatrixSaveContextProtoOrBuilder {
    // Use MatrixSaveContextProto.newBuilder() to construct.
    private MatrixSaveContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MatrixSaveContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MatrixSaveContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MatrixSaveContextProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              matrixName_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              formatClassName_ = input.readBytes();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                rowIndexes_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              rowIndexes_.add(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                rowIndexes_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                rowIndexes_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                params_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              params_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.Pair.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          rowIndexes_ = java.util.Collections.unmodifiableList(rowIndexes_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          params_ = java.util.Collections.unmodifiableList(params_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixSaveContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixSaveContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required string matrixName = 1;
    public static final int MATRIXNAME_FIELD_NUMBER = 1;
    private java.lang.Object matrixName_;
    /**
     * required string matrixName = 1;
     */
    public boolean hasMatrixName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string matrixName = 1;
     */
    public java.lang.String getMatrixName() {
      java.lang.Object ref = matrixName_;
      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()) {
          matrixName_ = s;
        }
        return s;
      }
    }
    /**
     * required string matrixName = 1;
     */
    public com.google.protobuf.ByteString
        getMatrixNameBytes() {
      java.lang.Object ref = matrixName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        matrixName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string formatClassName = 2;
    public static final int FORMATCLASSNAME_FIELD_NUMBER = 2;
    private java.lang.Object formatClassName_;
    /**
     * required string formatClassName = 2;
     */
    public boolean hasFormatClassName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string formatClassName = 2;
     */
    public java.lang.String getFormatClassName() {
      java.lang.Object ref = formatClassName_;
      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()) {
          formatClassName_ = s;
        }
        return s;
      }
    }
    /**
     * required string formatClassName = 2;
     */
    public com.google.protobuf.ByteString
        getFormatClassNameBytes() {
      java.lang.Object ref = formatClassName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        formatClassName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated int32 rowIndexes = 3;
    public static final int ROWINDEXES_FIELD_NUMBER = 3;
    private java.util.List rowIndexes_;
    /**
     * repeated int32 rowIndexes = 3;
     */
    public java.util.List
        getRowIndexesList() {
      return rowIndexes_;
    }
    /**
     * repeated int32 rowIndexes = 3;
     */
    public int getRowIndexesCount() {
      return rowIndexes_.size();
    }
    /**
     * repeated int32 rowIndexes = 3;
     */
    public int getRowIndexes(int index) {
      return rowIndexes_.get(index);
    }

    // repeated .Pair params = 4;
    public static final int PARAMS_FIELD_NUMBER = 4;
    private java.util.List params_;
    /**
     * repeated .Pair params = 4;
     */
    public java.util.List getParamsList() {
      return params_;
    }
    /**
     * repeated .Pair params = 4;
     */
    public java.util.List 
        getParamsOrBuilderList() {
      return params_;
    }
    /**
     * repeated .Pair params = 4;
     */
    public int getParamsCount() {
      return params_.size();
    }
    /**
     * repeated .Pair params = 4;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.Pair getParams(int index) {
      return params_.get(index);
    }
    /**
     * repeated .Pair params = 4;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getParamsOrBuilder(
        int index) {
      return params_.get(index);
    }

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

      if (!hasMatrixName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFormatClassName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getParamsCount(); i++) {
        if (!getParams(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMatrixNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getFormatClassNameBytes());
      }
      for (int i = 0; i < rowIndexes_.size(); i++) {
        output.writeInt32(3, rowIndexes_.get(i));
      }
      for (int i = 0; i < params_.size(); i++) {
        output.writeMessage(4, params_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMatrixNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getFormatClassNameBytes());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rowIndexes_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rowIndexes_.get(i));
        }
        size += dataSize;
        size += 1 * getRowIndexesList().size();
      }
      for (int i = 0; i < params_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, params_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto) obj;

      boolean result = true;
      result = result && (hasMatrixName() == other.hasMatrixName());
      if (hasMatrixName()) {
        result = result && getMatrixName()
            .equals(other.getMatrixName());
      }
      result = result && (hasFormatClassName() == other.hasFormatClassName());
      if (hasFormatClassName()) {
        result = result && getFormatClassName()
            .equals(other.getFormatClassName());
      }
      result = result && getRowIndexesList()
          .equals(other.getRowIndexesList());
      result = result && getParamsList()
          .equals(other.getParamsList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasMatrixName()) {
        hash = (37 * hash) + MATRIXNAME_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixName().hashCode();
      }
      if (hasFormatClassName()) {
        hash = (37 * hash) + FORMATCLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getFormatClassName().hashCode();
      }
      if (getRowIndexesCount() > 0) {
        hash = (37 * hash) + ROWINDEXES_FIELD_NUMBER;
        hash = (53 * hash) + getRowIndexesList().hashCode();
      }
      if (getParamsCount() > 0) {
        hash = (37 * hash) + PARAMS_FIELD_NUMBER;
        hash = (53 * hash) + getParamsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MatrixSaveContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixSaveContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixSaveContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        matrixName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        formatClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        rowIndexes_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        if (paramsBuilder_ == null) {
          params_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          paramsBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixSaveContextProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixName_ = matrixName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.formatClassName_ = formatClassName_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          rowIndexes_ = java.util.Collections.unmodifiableList(rowIndexes_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.rowIndexes_ = rowIndexes_;
        if (paramsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            params_ = java.util.Collections.unmodifiableList(params_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.params_ = params_;
        } else {
          result.params_ = paramsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.getDefaultInstance()) return this;
        if (other.hasMatrixName()) {
          bitField0_ |= 0x00000001;
          matrixName_ = other.matrixName_;
          onChanged();
        }
        if (other.hasFormatClassName()) {
          bitField0_ |= 0x00000002;
          formatClassName_ = other.formatClassName_;
          onChanged();
        }
        if (!other.rowIndexes_.isEmpty()) {
          if (rowIndexes_.isEmpty()) {
            rowIndexes_ = other.rowIndexes_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureRowIndexesIsMutable();
            rowIndexes_.addAll(other.rowIndexes_);
          }
          onChanged();
        }
        if (paramsBuilder_ == null) {
          if (!other.params_.isEmpty()) {
            if (params_.isEmpty()) {
              params_ = other.params_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureParamsIsMutable();
              params_.addAll(other.params_);
            }
            onChanged();
          }
        } else {
          if (!other.params_.isEmpty()) {
            if (paramsBuilder_.isEmpty()) {
              paramsBuilder_.dispose();
              paramsBuilder_ = null;
              params_ = other.params_;
              bitField0_ = (bitField0_ & ~0x00000008);
              paramsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getParamsFieldBuilder() : null;
            } else {
              paramsBuilder_.addAllMessages(other.params_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMatrixName()) {
          
          return false;
        }
        if (!hasFormatClassName()) {
          
          return false;
        }
        for (int i = 0; i < getParamsCount(); i++) {
          if (!getParams(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string matrixName = 1;
      private java.lang.Object matrixName_ = "";
      /**
       * required string matrixName = 1;
       */
      public boolean hasMatrixName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string matrixName = 1;
       */
      public java.lang.String getMatrixName() {
        java.lang.Object ref = matrixName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          matrixName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string matrixName = 1;
       */
      public com.google.protobuf.ByteString
          getMatrixNameBytes() {
        java.lang.Object ref = matrixName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          matrixName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string matrixName = 1;
       */
      public Builder setMatrixName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        matrixName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 1;
       */
      public Builder clearMatrixName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixName_ = getDefaultInstance().getMatrixName();
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 1;
       */
      public Builder setMatrixNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        matrixName_ = value;
        onChanged();
        return this;
      }

      // required string formatClassName = 2;
      private java.lang.Object formatClassName_ = "";
      /**
       * required string formatClassName = 2;
       */
      public boolean hasFormatClassName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string formatClassName = 2;
       */
      public java.lang.String getFormatClassName() {
        java.lang.Object ref = formatClassName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          formatClassName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string formatClassName = 2;
       */
      public com.google.protobuf.ByteString
          getFormatClassNameBytes() {
        java.lang.Object ref = formatClassName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          formatClassName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string formatClassName = 2;
       */
      public Builder setFormatClassName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        formatClassName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 2;
       */
      public Builder clearFormatClassName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        formatClassName_ = getDefaultInstance().getFormatClassName();
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 2;
       */
      public Builder setFormatClassNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        formatClassName_ = value;
        onChanged();
        return this;
      }

      // repeated int32 rowIndexes = 3;
      private java.util.List rowIndexes_ = java.util.Collections.emptyList();
      private void ensureRowIndexesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          rowIndexes_ = new java.util.ArrayList(rowIndexes_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public java.util.List
          getRowIndexesList() {
        return java.util.Collections.unmodifiableList(rowIndexes_);
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public int getRowIndexesCount() {
        return rowIndexes_.size();
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public int getRowIndexes(int index) {
        return rowIndexes_.get(index);
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public Builder setRowIndexes(
          int index, int value) {
        ensureRowIndexesIsMutable();
        rowIndexes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public Builder addRowIndexes(int value) {
        ensureRowIndexesIsMutable();
        rowIndexes_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public Builder addAllRowIndexes(
          java.lang.Iterable values) {
        ensureRowIndexesIsMutable();
        super.addAll(values, rowIndexes_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 rowIndexes = 3;
       */
      public Builder clearRowIndexes() {
        rowIndexes_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      // repeated .Pair params = 4;
      private java.util.List params_ =
        java.util.Collections.emptyList();
      private void ensureParamsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          params_ = new java.util.ArrayList(params_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> paramsBuilder_;

      /**
       * repeated .Pair params = 4;
       */
      public java.util.List getParamsList() {
        if (paramsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(params_);
        } else {
          return paramsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .Pair params = 4;
       */
      public int getParamsCount() {
        if (paramsBuilder_ == null) {
          return params_.size();
        } else {
          return paramsBuilder_.getCount();
        }
      }
      /**
       * repeated .Pair params = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair getParams(int index) {
        if (paramsBuilder_ == null) {
          return params_.get(index);
        } else {
          return paramsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder setParams(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (paramsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParamsIsMutable();
          params_.set(index, value);
          onChanged();
        } else {
          paramsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder setParams(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (paramsBuilder_ == null) {
          ensureParamsIsMutable();
          params_.set(index, builderForValue.build());
          onChanged();
        } else {
          paramsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder addParams(com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (paramsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParamsIsMutable();
          params_.add(value);
          onChanged();
        } else {
          paramsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder addParams(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (paramsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParamsIsMutable();
          params_.add(index, value);
          onChanged();
        } else {
          paramsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder addParams(
          com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (paramsBuilder_ == null) {
          ensureParamsIsMutable();
          params_.add(builderForValue.build());
          onChanged();
        } else {
          paramsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder addParams(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (paramsBuilder_ == null) {
          ensureParamsIsMutable();
          params_.add(index, builderForValue.build());
          onChanged();
        } else {
          paramsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder addAllParams(
          java.lang.Iterable values) {
        if (paramsBuilder_ == null) {
          ensureParamsIsMutable();
          super.addAll(values, params_);
          onChanged();
        } else {
          paramsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder clearParams() {
        if (paramsBuilder_ == null) {
          params_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          paramsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public Builder removeParams(int index) {
        if (paramsBuilder_ == null) {
          ensureParamsIsMutable();
          params_.remove(index);
          onChanged();
        } else {
          paramsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .Pair params = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder getParamsBuilder(
          int index) {
        return getParamsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .Pair params = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getParamsOrBuilder(
          int index) {
        if (paramsBuilder_ == null) {
          return params_.get(index);  } else {
          return paramsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .Pair params = 4;
       */
      public java.util.List 
           getParamsOrBuilderList() {
        if (paramsBuilder_ != null) {
          return paramsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(params_);
        }
      }
      /**
       * repeated .Pair params = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addParamsBuilder() {
        return getParamsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair params = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addParamsBuilder(
          int index) {
        return getParamsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair params = 4;
       */
      public java.util.List 
           getParamsBuilderList() {
        return getParamsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> 
          getParamsFieldBuilder() {
        if (paramsBuilder_ == null) {
          paramsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder>(
                  params_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          params_ = null;
        }
        return paramsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:MatrixSaveContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:MatrixSaveContextProto)
  }

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

    // required string savePath = 1;
    /**
     * required string savePath = 1;
     */
    boolean hasSavePath();
    /**
     * required string savePath = 1;
     */
    java.lang.String getSavePath();
    /**
     * required string savePath = 1;
     */
    com.google.protobuf.ByteString
        getSavePathBytes();

    // repeated .MatrixSaveContextProto matrixContextes = 2;
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    java.util.List 
        getMatrixContextesList();
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto getMatrixContextes(int index);
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    int getMatrixContextesCount();
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    java.util.List 
        getMatrixContextesOrBuilderList();
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder getMatrixContextesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ModelSaveContextProto}
   */
  public static final class ModelSaveContextProto extends
      com.google.protobuf.GeneratedMessage
      implements ModelSaveContextProtoOrBuilder {
    // Use ModelSaveContextProto.newBuilder() to construct.
    private ModelSaveContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ModelSaveContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ModelSaveContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ModelSaveContextProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              savePath_ = input.readBytes();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                matrixContextes_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              matrixContextes_.add(input.readMessage(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          matrixContextes_ = java.util.Collections.unmodifiableList(matrixContextes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelSaveContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelSaveContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required string savePath = 1;
    public static final int SAVEPATH_FIELD_NUMBER = 1;
    private java.lang.Object savePath_;
    /**
     * required string savePath = 1;
     */
    public boolean hasSavePath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string savePath = 1;
     */
    public java.lang.String getSavePath() {
      java.lang.Object ref = savePath_;
      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()) {
          savePath_ = s;
        }
        return s;
      }
    }
    /**
     * required string savePath = 1;
     */
    public com.google.protobuf.ByteString
        getSavePathBytes() {
      java.lang.Object ref = savePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        savePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated .MatrixSaveContextProto matrixContextes = 2;
    public static final int MATRIXCONTEXTES_FIELD_NUMBER = 2;
    private java.util.List matrixContextes_;
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    public java.util.List getMatrixContextesList() {
      return matrixContextes_;
    }
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    public java.util.List 
        getMatrixContextesOrBuilderList() {
      return matrixContextes_;
    }
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    public int getMatrixContextesCount() {
      return matrixContextes_.size();
    }
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto getMatrixContextes(int index) {
      return matrixContextes_.get(index);
    }
    /**
     * repeated .MatrixSaveContextProto matrixContextes = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder getMatrixContextesOrBuilder(
        int index) {
      return matrixContextes_.get(index);
    }

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

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto) obj;

      boolean result = true;
      result = result && (hasSavePath() == other.hasSavePath());
      if (hasSavePath()) {
        result = result && getSavePath()
            .equals(other.getSavePath());
      }
      result = result && getMatrixContextesList()
          .equals(other.getMatrixContextesList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasSavePath()) {
        hash = (37 * hash) + SAVEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getSavePath().hashCode();
      }
      if (getMatrixContextesCount() > 0) {
        hash = (37 * hash) + MATRIXCONTEXTES_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixContextesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ModelSaveContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelSaveContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelSaveContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        savePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (matrixContextesBuilder_ == null) {
          matrixContextes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matrixContextesBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelSaveContextProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.savePath_ = savePath_;
        if (matrixContextesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matrixContextes_ = java.util.Collections.unmodifiableList(matrixContextes_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.matrixContextes_ = matrixContextes_;
        } else {
          result.matrixContextes_ = matrixContextesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto.getDefaultInstance()) return this;
        if (other.hasSavePath()) {
          bitField0_ |= 0x00000001;
          savePath_ = other.savePath_;
          onChanged();
        }
        if (matrixContextesBuilder_ == null) {
          if (!other.matrixContextes_.isEmpty()) {
            if (matrixContextes_.isEmpty()) {
              matrixContextes_ = other.matrixContextes_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatrixContextesIsMutable();
              matrixContextes_.addAll(other.matrixContextes_);
            }
            onChanged();
          }
        } else {
          if (!other.matrixContextes_.isEmpty()) {
            if (matrixContextesBuilder_.isEmpty()) {
              matrixContextesBuilder_.dispose();
              matrixContextesBuilder_ = null;
              matrixContextes_ = other.matrixContextes_;
              bitField0_ = (bitField0_ & ~0x00000002);
              matrixContextesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMatrixContextesFieldBuilder() : null;
            } else {
              matrixContextesBuilder_.addAllMessages(other.matrixContextes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelSaveContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string savePath = 1;
      private java.lang.Object savePath_ = "";
      /**
       * required string savePath = 1;
       */
      public boolean hasSavePath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string savePath = 1;
       */
      public java.lang.String getSavePath() {
        java.lang.Object ref = savePath_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          savePath_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string savePath = 1;
       */
      public com.google.protobuf.ByteString
          getSavePathBytes() {
        java.lang.Object ref = savePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          savePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string savePath = 1;
       */
      public Builder setSavePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        savePath_ = value;
        onChanged();
        return this;
      }
      /**
       * required string savePath = 1;
       */
      public Builder clearSavePath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        savePath_ = getDefaultInstance().getSavePath();
        onChanged();
        return this;
      }
      /**
       * required string savePath = 1;
       */
      public Builder setSavePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        savePath_ = value;
        onChanged();
        return this;
      }

      // repeated .MatrixSaveContextProto matrixContextes = 2;
      private java.util.List matrixContextes_ =
        java.util.Collections.emptyList();
      private void ensureMatrixContextesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matrixContextes_ = new java.util.ArrayList(matrixContextes_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder> matrixContextesBuilder_;

      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public java.util.List getMatrixContextesList() {
        if (matrixContextesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matrixContextes_);
        } else {
          return matrixContextesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public int getMatrixContextesCount() {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.size();
        } else {
          return matrixContextesBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto getMatrixContextes(int index) {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.get(index);
        } else {
          return matrixContextesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder setMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.set(index, value);
          onChanged();
        } else {
          matrixContextesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder setMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.set(index, builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(value);
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(index, value);
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(index, builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder addAllMatrixContextes(
          java.lang.Iterable values) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          super.addAll(values, matrixContextes_);
          onChanged();
        } else {
          matrixContextesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder clearMatrixContextes() {
        if (matrixContextesBuilder_ == null) {
          matrixContextes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matrixContextesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public Builder removeMatrixContextes(int index) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.remove(index);
          onChanged();
        } else {
          matrixContextesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder getMatrixContextesBuilder(
          int index) {
        return getMatrixContextesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder getMatrixContextesOrBuilder(
          int index) {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.get(index);  } else {
          return matrixContextesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public java.util.List 
           getMatrixContextesOrBuilderList() {
        if (matrixContextesBuilder_ != null) {
          return matrixContextesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matrixContextes_);
        }
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder addMatrixContextesBuilder() {
        return getMatrixContextesFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder addMatrixContextesBuilder(
          int index) {
        return getMatrixContextesFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixSaveContextProto matrixContextes = 2;
       */
      public java.util.List 
           getMatrixContextesBuilderList() {
        return getMatrixContextesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder> 
          getMatrixContextesFieldBuilder() {
        if (matrixContextesBuilder_ == null) {
          matrixContextesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixSaveContextProtoOrBuilder>(
                  matrixContextes_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          matrixContextes_ = null;
        }
        return matrixContextesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:ModelSaveContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:ModelSaveContextProto)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code SaveResponse}
   */
  public static final class SaveResponse extends
      com.google.protobuf.GeneratedMessage
      implements SaveResponseOrBuilder {
    // Use SaveResponse.newBuilder() to construct.
    private SaveResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SaveResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SaveResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SaveResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    /**
     * required int32 requestId = 1;
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 requestId = 1;
     */
    public int getRequestId() {
      return requestId_;
    }

    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SaveResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SaveResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 requestId = 1;
      private int requestId_ ;
      /**
       * required int32 requestId = 1;
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 requestId = 1;
       */
      public int getRequestId() {
        return requestId_;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SaveResponse)
    }

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

    // @@protoc_insertion_point(class_scope:SaveResponse)
  }

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

    // required .ModelLoadContextProto loadContext = 1;
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    boolean hasLoadContext();
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto getLoadContext();
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder getLoadContextOrBuilder();
  }
  /**
   * Protobuf type {@code LoadRequest}
   */
  public static final class LoadRequest extends
      com.google.protobuf.GeneratedMessage
      implements LoadRequestOrBuilder {
    // Use LoadRequest.newBuilder() to construct.
    private LoadRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoadRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoadRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .ModelLoadContextProto loadContext = 1;
    public static final int LOADCONTEXT_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto loadContext_;
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    public boolean hasLoadContext() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto getLoadContext() {
      return loadContext_;
    }
    /**
     * required .ModelLoadContextProto loadContext = 1;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder getLoadContextOrBuilder() {
      return loadContext_;
    }

    private void initFields() {
      loadContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest) obj;

      boolean result = true;
      result = result && (hasLoadContext() == other.hasLoadContext());
      if (hasLoadContext()) {
        result = result && getLoadContext()
            .equals(other.getLoadContext());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasLoadContext()) {
        hash = (37 * hash) + LOADCONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getLoadContext().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LoadRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (loadContextBuilder_ == null) {
          loadContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance();
        } else {
          loadContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (loadContextBuilder_ == null) {
          result.loadContext_ = loadContext_;
        } else {
          result.loadContext_ = loadContextBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.getDefaultInstance()) return this;
        if (other.hasLoadContext()) {
          mergeLoadContext(other.getLoadContext());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLoadContext()) {
          
          return false;
        }
        if (!getLoadContext().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .ModelLoadContextProto loadContext = 1;
      private com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto loadContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder> loadContextBuilder_;
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public boolean hasLoadContext() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto getLoadContext() {
        if (loadContextBuilder_ == null) {
          return loadContext_;
        } else {
          return loadContextBuilder_.getMessage();
        }
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public Builder setLoadContext(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto value) {
        if (loadContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          loadContext_ = value;
          onChanged();
        } else {
          loadContextBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public Builder setLoadContext(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder builderForValue) {
        if (loadContextBuilder_ == null) {
          loadContext_ = builderForValue.build();
          onChanged();
        } else {
          loadContextBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public Builder mergeLoadContext(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto value) {
        if (loadContextBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              loadContext_ != com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance()) {
            loadContext_ =
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.newBuilder(loadContext_).mergeFrom(value).buildPartial();
          } else {
            loadContext_ = value;
          }
          onChanged();
        } else {
          loadContextBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public Builder clearLoadContext() {
        if (loadContextBuilder_ == null) {
          loadContext_ = com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance();
          onChanged();
        } else {
          loadContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder getLoadContextBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLoadContextFieldBuilder().getBuilder();
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder getLoadContextOrBuilder() {
        if (loadContextBuilder_ != null) {
          return loadContextBuilder_.getMessageOrBuilder();
        } else {
          return loadContext_;
        }
      }
      /**
       * required .ModelLoadContextProto loadContext = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder> 
          getLoadContextFieldBuilder() {
        if (loadContextBuilder_ == null) {
          loadContextBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder>(
                  loadContext_,
                  getParentForChildren(),
                  isClean());
          loadContext_ = null;
        }
        return loadContextBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:LoadRequest)
    }

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

    // @@protoc_insertion_point(class_scope:LoadRequest)
  }

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

    // required string matrixName = 1;
    /**
     * required string matrixName = 1;
     */
    boolean hasMatrixName();
    /**
     * required string matrixName = 1;
     */
    java.lang.String getMatrixName();
    /**
     * required string matrixName = 1;
     */
    com.google.protobuf.ByteString
        getMatrixNameBytes();
  }
  /**
   * Protobuf type {@code MatrixLoadContextProto}
   */
  public static final class MatrixLoadContextProto extends
      com.google.protobuf.GeneratedMessage
      implements MatrixLoadContextProtoOrBuilder {
    // Use MatrixLoadContextProto.newBuilder() to construct.
    private MatrixLoadContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MatrixLoadContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MatrixLoadContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MatrixLoadContextProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              matrixName_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixLoadContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixLoadContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required string matrixName = 1;
    public static final int MATRIXNAME_FIELD_NUMBER = 1;
    private java.lang.Object matrixName_;
    /**
     * required string matrixName = 1;
     */
    public boolean hasMatrixName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string matrixName = 1;
     */
    public java.lang.String getMatrixName() {
      java.lang.Object ref = matrixName_;
      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()) {
          matrixName_ = s;
        }
        return s;
      }
    }
    /**
     * required string matrixName = 1;
     */
    public com.google.protobuf.ByteString
        getMatrixNameBytes() {
      java.lang.Object ref = matrixName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        matrixName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      matrixName_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto) obj;

      boolean result = true;
      result = result && (hasMatrixName() == other.hasMatrixName());
      if (hasMatrixName()) {
        result = result && getMatrixName()
            .equals(other.getMatrixName());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasMatrixName()) {
        hash = (37 * hash) + MATRIXNAME_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixName().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MatrixLoadContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixLoadContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixLoadContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        matrixName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_MatrixLoadContextProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixName_ = matrixName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.getDefaultInstance()) return this;
        if (other.hasMatrixName()) {
          bitField0_ |= 0x00000001;
          matrixName_ = other.matrixName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string matrixName = 1;
      private java.lang.Object matrixName_ = "";
      /**
       * required string matrixName = 1;
       */
      public boolean hasMatrixName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string matrixName = 1;
       */
      public java.lang.String getMatrixName() {
        java.lang.Object ref = matrixName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          matrixName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string matrixName = 1;
       */
      public com.google.protobuf.ByteString
          getMatrixNameBytes() {
        java.lang.Object ref = matrixName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          matrixName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string matrixName = 1;
       */
      public Builder setMatrixName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        matrixName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 1;
       */
      public Builder clearMatrixName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixName_ = getDefaultInstance().getMatrixName();
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 1;
       */
      public Builder setMatrixNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        matrixName_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:MatrixLoadContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:MatrixLoadContextProto)
  }

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

    // required string loadPath = 1;
    /**
     * required string loadPath = 1;
     */
    boolean hasLoadPath();
    /**
     * required string loadPath = 1;
     */
    java.lang.String getLoadPath();
    /**
     * required string loadPath = 1;
     */
    com.google.protobuf.ByteString
        getLoadPathBytes();

    // repeated .MatrixLoadContextProto matrixContextes = 2;
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    java.util.List 
        getMatrixContextesList();
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto getMatrixContextes(int index);
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    int getMatrixContextesCount();
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    java.util.List 
        getMatrixContextesOrBuilderList();
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder getMatrixContextesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ModelLoadContextProto}
   */
  public static final class ModelLoadContextProto extends
      com.google.protobuf.GeneratedMessage
      implements ModelLoadContextProtoOrBuilder {
    // Use ModelLoadContextProto.newBuilder() to construct.
    private ModelLoadContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ModelLoadContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ModelLoadContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ModelLoadContextProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              loadPath_ = input.readBytes();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                matrixContextes_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              matrixContextes_.add(input.readMessage(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          matrixContextes_ = java.util.Collections.unmodifiableList(matrixContextes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelLoadContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelLoadContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required string loadPath = 1;
    public static final int LOADPATH_FIELD_NUMBER = 1;
    private java.lang.Object loadPath_;
    /**
     * required string loadPath = 1;
     */
    public boolean hasLoadPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string loadPath = 1;
     */
    public java.lang.String getLoadPath() {
      java.lang.Object ref = loadPath_;
      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()) {
          loadPath_ = s;
        }
        return s;
      }
    }
    /**
     * required string loadPath = 1;
     */
    public com.google.protobuf.ByteString
        getLoadPathBytes() {
      java.lang.Object ref = loadPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loadPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated .MatrixLoadContextProto matrixContextes = 2;
    public static final int MATRIXCONTEXTES_FIELD_NUMBER = 2;
    private java.util.List matrixContextes_;
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    public java.util.List getMatrixContextesList() {
      return matrixContextes_;
    }
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    public java.util.List 
        getMatrixContextesOrBuilderList() {
      return matrixContextes_;
    }
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    public int getMatrixContextesCount() {
      return matrixContextes_.size();
    }
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto getMatrixContextes(int index) {
      return matrixContextes_.get(index);
    }
    /**
     * repeated .MatrixLoadContextProto matrixContextes = 2;
     */
    public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder getMatrixContextesOrBuilder(
        int index) {
      return matrixContextes_.get(index);
    }

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

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto) obj;

      boolean result = true;
      result = result && (hasLoadPath() == other.hasLoadPath());
      if (hasLoadPath()) {
        result = result && getLoadPath()
            .equals(other.getLoadPath());
      }
      result = result && getMatrixContextesList()
          .equals(other.getMatrixContextesList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasLoadPath()) {
        hash = (37 * hash) + LOADPATH_FIELD_NUMBER;
        hash = (53 * hash) + getLoadPath().hashCode();
      }
      if (getMatrixContextesCount() > 0) {
        hash = (37 * hash) + MATRIXCONTEXTES_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixContextesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ModelLoadContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelLoadContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelLoadContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        loadPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (matrixContextesBuilder_ == null) {
          matrixContextes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matrixContextesBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ModelLoadContextProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.loadPath_ = loadPath_;
        if (matrixContextesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matrixContextes_ = java.util.Collections.unmodifiableList(matrixContextes_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.matrixContextes_ = matrixContextes_;
        } else {
          result.matrixContextes_ = matrixContextesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto.getDefaultInstance()) return this;
        if (other.hasLoadPath()) {
          bitField0_ |= 0x00000001;
          loadPath_ = other.loadPath_;
          onChanged();
        }
        if (matrixContextesBuilder_ == null) {
          if (!other.matrixContextes_.isEmpty()) {
            if (matrixContextes_.isEmpty()) {
              matrixContextes_ = other.matrixContextes_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatrixContextesIsMutable();
              matrixContextes_.addAll(other.matrixContextes_);
            }
            onChanged();
          }
        } else {
          if (!other.matrixContextes_.isEmpty()) {
            if (matrixContextesBuilder_.isEmpty()) {
              matrixContextesBuilder_.dispose();
              matrixContextesBuilder_ = null;
              matrixContextes_ = other.matrixContextes_;
              bitField0_ = (bitField0_ & ~0x00000002);
              matrixContextesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMatrixContextesFieldBuilder() : null;
            } else {
              matrixContextesBuilder_.addAllMessages(other.matrixContextes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ModelLoadContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string loadPath = 1;
      private java.lang.Object loadPath_ = "";
      /**
       * required string loadPath = 1;
       */
      public boolean hasLoadPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string loadPath = 1;
       */
      public java.lang.String getLoadPath() {
        java.lang.Object ref = loadPath_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          loadPath_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string loadPath = 1;
       */
      public com.google.protobuf.ByteString
          getLoadPathBytes() {
        java.lang.Object ref = loadPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loadPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string loadPath = 1;
       */
      public Builder setLoadPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        loadPath_ = value;
        onChanged();
        return this;
      }
      /**
       * required string loadPath = 1;
       */
      public Builder clearLoadPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        loadPath_ = getDefaultInstance().getLoadPath();
        onChanged();
        return this;
      }
      /**
       * required string loadPath = 1;
       */
      public Builder setLoadPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        loadPath_ = value;
        onChanged();
        return this;
      }

      // repeated .MatrixLoadContextProto matrixContextes = 2;
      private java.util.List matrixContextes_ =
        java.util.Collections.emptyList();
      private void ensureMatrixContextesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matrixContextes_ = new java.util.ArrayList(matrixContextes_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder> matrixContextesBuilder_;

      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public java.util.List getMatrixContextesList() {
        if (matrixContextesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matrixContextes_);
        } else {
          return matrixContextesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public int getMatrixContextesCount() {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.size();
        } else {
          return matrixContextesBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto getMatrixContextes(int index) {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.get(index);
        } else {
          return matrixContextesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder setMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.set(index, value);
          onChanged();
        } else {
          matrixContextesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder setMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.set(index, builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(value);
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto value) {
        if (matrixContextesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(index, value);
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder addMatrixContextes(
          int index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder builderForValue) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.add(index, builderForValue.build());
          onChanged();
        } else {
          matrixContextesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder addAllMatrixContextes(
          java.lang.Iterable values) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          super.addAll(values, matrixContextes_);
          onChanged();
        } else {
          matrixContextesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder clearMatrixContextes() {
        if (matrixContextesBuilder_ == null) {
          matrixContextes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matrixContextesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public Builder removeMatrixContextes(int index) {
        if (matrixContextesBuilder_ == null) {
          ensureMatrixContextesIsMutable();
          matrixContextes_.remove(index);
          onChanged();
        } else {
          matrixContextesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder getMatrixContextesBuilder(
          int index) {
        return getMatrixContextesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder getMatrixContextesOrBuilder(
          int index) {
        if (matrixContextesBuilder_ == null) {
          return matrixContextes_.get(index);  } else {
          return matrixContextesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public java.util.List 
           getMatrixContextesOrBuilderList() {
        if (matrixContextesBuilder_ != null) {
          return matrixContextesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matrixContextes_);
        }
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder addMatrixContextesBuilder() {
        return getMatrixContextesFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder addMatrixContextesBuilder(
          int index) {
        return getMatrixContextesFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixLoadContextProto matrixContextes = 2;
       */
      public java.util.List 
           getMatrixContextesBuilderList() {
        return getMatrixContextesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder> 
          getMatrixContextesFieldBuilder() {
        if (matrixContextesBuilder_ == null) {
          matrixContextesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.MatrixLoadContextProtoOrBuilder>(
                  matrixContextes_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          matrixContextes_ = null;
        }
        return matrixContextesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:ModelLoadContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:ModelLoadContextProto)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code LoadResponse}
   */
  public static final class LoadResponse extends
      com.google.protobuf.GeneratedMessage
      implements LoadResponseOrBuilder {
    // Use LoadResponse.newBuilder() to construct.
    private LoadResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoadResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoadResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoadResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    /**
     * required int32 requestId = 1;
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 requestId = 1;
     */
    public int getRequestId() {
      return requestId_;
    }

    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LoadResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_LoadResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 requestId = 1;
      private int requestId_ ;
      /**
       * required int32 requestId = 1;
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 requestId = 1;
       */
      public int getRequestId() {
        return requestId_;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LoadResponse)
    }

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

    // @@protoc_insertion_point(class_scope:LoadResponse)
  }

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

    // repeated .Pair kvs = 1;
    /**
     * repeated .Pair kvs = 1;
     */
    java.util.List 
        getKvsList();
    /**
     * repeated .Pair kvs = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.Pair getKvs(int index);
    /**
     * repeated .Pair kvs = 1;
     */
    int getKvsCount();
    /**
     * repeated .Pair kvs = 1;
     */
    java.util.List 
        getKvsOrBuilderList();
    /**
     * repeated .Pair kvs = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getKvsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code SetParamsRequest}
   */
  public static final class SetParamsRequest extends
      com.google.protobuf.GeneratedMessage
      implements SetParamsRequestOrBuilder {
    // Use SetParamsRequest.newBuilder() to construct.
    private SetParamsRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SetParamsRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SetParamsRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SetParamsRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                kvs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              kvs_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.Pair.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          kvs_ = java.util.Collections.unmodifiableList(kvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.Builder.class);
    }

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

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

    // repeated .Pair kvs = 1;
    public static final int KVS_FIELD_NUMBER = 1;
    private java.util.List kvs_;
    /**
     * repeated .Pair kvs = 1;
     */
    public java.util.List getKvsList() {
      return kvs_;
    }
    /**
     * repeated .Pair kvs = 1;
     */
    public java.util.List 
        getKvsOrBuilderList() {
      return kvs_;
    }
    /**
     * repeated .Pair kvs = 1;
     */
    public int getKvsCount() {
      return kvs_.size();
    }
    /**
     * repeated .Pair kvs = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.Pair getKvs(int index) {
      return kvs_.get(index);
    }
    /**
     * repeated .Pair kvs = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getKvsOrBuilder(
        int index) {
      return kvs_.get(index);
    }

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

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest) obj;

      boolean result = true;
      result = result && getKvsList()
          .equals(other.getKvsList());
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getKvsCount() > 0) {
        hash = (37 * hash) + KVS_FIELD_NUMBER;
        hash = (53 * hash) + getKvsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SetParamsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest(this);
        int from_bitField0_ = bitField0_;
        if (kvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            kvs_ = java.util.Collections.unmodifiableList(kvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kvs_ = kvs_;
        } else {
          result.kvs_ = kvsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.getDefaultInstance()) return this;
        if (kvsBuilder_ == null) {
          if (!other.kvs_.isEmpty()) {
            if (kvs_.isEmpty()) {
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKvsIsMutable();
              kvs_.addAll(other.kvs_);
            }
            onChanged();
          }
        } else {
          if (!other.kvs_.isEmpty()) {
            if (kvsBuilder_.isEmpty()) {
              kvsBuilder_.dispose();
              kvsBuilder_ = null;
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kvsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getKvsFieldBuilder() : null;
            } else {
              kvsBuilder_.addAllMessages(other.kvs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .Pair kvs = 1;
      private java.util.List kvs_ =
        java.util.Collections.emptyList();
      private void ensureKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          kvs_ = new java.util.ArrayList(kvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> kvsBuilder_;

      /**
       * repeated .Pair kvs = 1;
       */
      public java.util.List getKvsList() {
        if (kvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kvs_);
        } else {
          return kvsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public int getKvsCount() {
        if (kvsBuilder_ == null) {
          return kvs_.size();
        } else {
          return kvsBuilder_.getCount();
        }
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair getKvs(int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);
        } else {
          return kvsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder setKvs(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.set(index, value);
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder setKvs(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder addKvs(com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder addKvs(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(index, value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder addKvs(
          com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder addKvs(
          int index, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder addAllKvs(
          java.lang.Iterable values) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          super.addAll(values, kvs_);
          onChanged();
        } else {
          kvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder clearKvs() {
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kvsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public Builder removeKvs(int index) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.remove(index);
          onChanged();
        } else {
          kvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder getKvsBuilder(
          int index) {
        return getKvsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder getKvsOrBuilder(
          int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);  } else {
          return kvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public java.util.List 
           getKvsOrBuilderList() {
        if (kvsBuilder_ != null) {
          return kvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kvs_);
        }
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addKvsBuilder() {
        return getKvsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addKvsBuilder(
          int index) {
        return getKvsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair kvs = 1;
       */
      public java.util.List 
           getKvsBuilderList() {
        return getKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder> 
          getKvsFieldBuilder() {
        if (kvsBuilder_ == null) {
          kvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.Pair, com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder, com.tencent.angel.protobuf.generated.MLProtos.PairOrBuilder>(
                  kvs_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          kvs_ = null;
        }
        return kvsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SetParamsRequest)
    }

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

    // @@protoc_insertion_point(class_scope:SetParamsRequest)
  }

  public interface SetParamsResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code SetParamsResponse}
   */
  public static final class SetParamsResponse extends
      com.google.protobuf.GeneratedMessage
      implements SetParamsResponseOrBuilder {
    // Use SetParamsResponse.newBuilder() to construct.
    private SetParamsResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SetParamsResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SetParamsResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SetParamsResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SetParamsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_SetParamsResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SetParamsResponse)
    }

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

    // @@protoc_insertion_point(class_scope:SetParamsResponse)
  }

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

    // required .WorkerIdProto workerId = 1;
    /**
     * required .WorkerIdProto workerId = 1;
     */
    boolean hasWorkerId();
    /**
     * required .WorkerIdProto workerId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto getWorkerId();
    /**
     * required .WorkerIdProto workerId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder getWorkerIdOrBuilder();
  }
  /**
   * Protobuf type {@code GetWorkerLogDirRequest}
   */
  public static final class GetWorkerLogDirRequest extends
      com.google.protobuf.GeneratedMessage
      implements GetWorkerLogDirRequestOrBuilder {
    // Use GetWorkerLogDirRequest.newBuilder() to construct.
    private GetWorkerLogDirRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetWorkerLogDirRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetWorkerLogDirRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .WorkerIdProto workerId = 1;
    public static final int WORKERID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto workerId_;
    /**
     * required .WorkerIdProto workerId = 1;
     */
    public boolean hasWorkerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .WorkerIdProto workerId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto getWorkerId() {
      return workerId_;
    }
    /**
     * required .WorkerIdProto workerId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder getWorkerIdOrBuilder() {
      return workerId_;
    }

    private void initFields() {
      workerId_ = com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest) obj;

      boolean result = true;
      result = result && (hasWorkerId() == other.hasWorkerId());
      if (hasWorkerId()) {
        result = result && getWorkerId()
            .equals(other.getWorkerId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasWorkerId()) {
        hash = (37 * hash) + WORKERID_FIELD_NUMBER;
        hash = (53 * hash) + getWorkerId().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetWorkerLogDirRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (workerIdBuilder_ == null) {
          workerId_ = com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.getDefaultInstance();
        } else {
          workerIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (workerIdBuilder_ == null) {
          result.workerId_ = workerId_;
        } else {
          result.workerId_ = workerIdBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.getDefaultInstance()) return this;
        if (other.hasWorkerId()) {
          mergeWorkerId(other.getWorkerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasWorkerId()) {
          
          return false;
        }
        if (!getWorkerId().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .WorkerIdProto workerId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto workerId_ = com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder> workerIdBuilder_;
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public boolean hasWorkerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto getWorkerId() {
        if (workerIdBuilder_ == null) {
          return workerId_;
        } else {
          return workerIdBuilder_.getMessage();
        }
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public Builder setWorkerId(com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto value) {
        if (workerIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          workerId_ = value;
          onChanged();
        } else {
          workerIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public Builder setWorkerId(
          com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.Builder builderForValue) {
        if (workerIdBuilder_ == null) {
          workerId_ = builderForValue.build();
          onChanged();
        } else {
          workerIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public Builder mergeWorkerId(com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto value) {
        if (workerIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              workerId_ != com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.getDefaultInstance()) {
            workerId_ =
              com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.newBuilder(workerId_).mergeFrom(value).buildPartial();
          } else {
            workerId_ = value;
          }
          onChanged();
        } else {
          workerIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public Builder clearWorkerId() {
        if (workerIdBuilder_ == null) {
          workerId_ = com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.getDefaultInstance();
          onChanged();
        } else {
          workerIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.Builder getWorkerIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getWorkerIdFieldBuilder().getBuilder();
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder getWorkerIdOrBuilder() {
        if (workerIdBuilder_ != null) {
          return workerIdBuilder_.getMessageOrBuilder();
        } else {
          return workerId_;
        }
      }
      /**
       * required .WorkerIdProto workerId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder> 
          getWorkerIdFieldBuilder() {
        if (workerIdBuilder_ == null) {
          workerIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.WorkerIdProtoOrBuilder>(
                  workerId_,
                  getParentForChildren(),
                  isClean());
          workerId_ = null;
        }
        return workerIdBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetWorkerLogDirRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetWorkerLogDirRequest)
  }

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

    // required string logDir = 1;
    /**
     * required string logDir = 1;
     */
    boolean hasLogDir();
    /**
     * required string logDir = 1;
     */
    java.lang.String getLogDir();
    /**
     * required string logDir = 1;
     */
    com.google.protobuf.ByteString
        getLogDirBytes();
  }
  /**
   * Protobuf type {@code GetWorkerLogDirResponse}
   */
  public static final class GetWorkerLogDirResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetWorkerLogDirResponseOrBuilder {
    // Use GetWorkerLogDirResponse.newBuilder() to construct.
    private GetWorkerLogDirResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetWorkerLogDirResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetWorkerLogDirResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetWorkerLogDirResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              logDir_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required string logDir = 1;
    public static final int LOGDIR_FIELD_NUMBER = 1;
    private java.lang.Object logDir_;
    /**
     * required string logDir = 1;
     */
    public boolean hasLogDir() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string logDir = 1;
     */
    public java.lang.String getLogDir() {
      java.lang.Object ref = logDir_;
      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()) {
          logDir_ = s;
        }
        return s;
      }
    }
    /**
     * required string logDir = 1;
     */
    public com.google.protobuf.ByteString
        getLogDirBytes() {
      java.lang.Object ref = logDir_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        logDir_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      logDir_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse) obj;

      boolean result = true;
      result = result && (hasLogDir() == other.hasLogDir());
      if (hasLogDir()) {
        result = result && getLogDir()
            .equals(other.getLogDir());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasLogDir()) {
        hash = (37 * hash) + LOGDIR_FIELD_NUMBER;
        hash = (53 * hash) + getLogDir().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetWorkerLogDirResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        logDir_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetWorkerLogDirResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.logDir_ = logDir_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance()) return this;
        if (other.hasLogDir()) {
          bitField0_ |= 0x00000001;
          logDir_ = other.logDir_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string logDir = 1;
      private java.lang.Object logDir_ = "";
      /**
       * required string logDir = 1;
       */
      public boolean hasLogDir() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string logDir = 1;
       */
      public java.lang.String getLogDir() {
        java.lang.Object ref = logDir_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          logDir_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string logDir = 1;
       */
      public com.google.protobuf.ByteString
          getLogDirBytes() {
        java.lang.Object ref = logDir_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          logDir_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string logDir = 1;
       */
      public Builder setLogDir(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        logDir_ = value;
        onChanged();
        return this;
      }
      /**
       * required string logDir = 1;
       */
      public Builder clearLogDir() {
        bitField0_ = (bitField0_ & ~0x00000001);
        logDir_ = getDefaultInstance().getLogDir();
        onChanged();
        return this;
      }
      /**
       * required string logDir = 1;
       */
      public Builder setLogDirBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        logDir_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetWorkerLogDirResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetWorkerLogDirResponse)
  }

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

    // required int32 exitStatus = 1;
    /**
     * required int32 exitStatus = 1;
     */
    boolean hasExitStatus();
    /**
     * required int32 exitStatus = 1;
     */
    int getExitStatus();
  }
  /**
   * Protobuf type {@code StopRequest}
   */
  public static final class StopRequest extends
      com.google.protobuf.GeneratedMessage
      implements StopRequestOrBuilder {
    // Use StopRequest.newBuilder() to construct.
    private StopRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StopRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StopRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StopRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              exitStatus_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 exitStatus = 1;
    public static final int EXITSTATUS_FIELD_NUMBER = 1;
    private int exitStatus_;
    /**
     * required int32 exitStatus = 1;
     */
    public boolean hasExitStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 exitStatus = 1;
     */
    public int getExitStatus() {
      return exitStatus_;
    }

    private void initFields() {
      exitStatus_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest) obj;

      boolean result = true;
      result = result && (hasExitStatus() == other.hasExitStatus());
      if (hasExitStatus()) {
        result = result && (getExitStatus()
            == other.getExitStatus());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasExitStatus()) {
        hash = (37 * hash) + EXITSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getExitStatus();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StopRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        exitStatus_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.exitStatus_ = exitStatus_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.getDefaultInstance()) return this;
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 exitStatus = 1;
      private int exitStatus_ ;
      /**
       * required int32 exitStatus = 1;
       */
      public boolean hasExitStatus() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 exitStatus = 1;
       */
      public int getExitStatus() {
        return exitStatus_;
      }
      /**
       * required int32 exitStatus = 1;
       */
      public Builder setExitStatus(int value) {
        bitField0_ |= 0x00000001;
        exitStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 exitStatus = 1;
       */
      public Builder clearExitStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        exitStatus_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StopRequest)
    }

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

    // @@protoc_insertion_point(class_scope:StopRequest)
  }

  public interface StopResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code StopResponse}
   */
  public static final class StopResponse extends
      com.google.protobuf.GeneratedMessage
      implements StopResponseOrBuilder {
    // Use StopResponse.newBuilder() to construct.
    private StopResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StopResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StopResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StopResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StopResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_StopResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StopResponse)
    }

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

    // @@protoc_insertion_point(class_scope:StopResponse)
  }

  public interface GetClientIdRequestOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code GetClientIdRequest}
   */
  public static final class GetClientIdRequest extends
      com.google.protobuf.GeneratedMessage
      implements GetClientIdRequestOrBuilder {
    // Use GetClientIdRequest.newBuilder() to construct.
    private GetClientIdRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetClientIdRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetClientIdRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetClientIdRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetClientIdRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetClientIdRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetClientIdRequest)
  }

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

    // required int32 clientId = 1;
    /**
     * required int32 clientId = 1;
     */
    boolean hasClientId();
    /**
     * required int32 clientId = 1;
     */
    int getClientId();
  }
  /**
   * Protobuf type {@code GetClientIdResponse}
   */
  public static final class GetClientIdResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetClientIdResponseOrBuilder {
    // Use GetClientIdResponse.newBuilder() to construct.
    private GetClientIdResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetClientIdResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetClientIdResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetClientIdResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              clientId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 clientId = 1;
    public static final int CLIENTID_FIELD_NUMBER = 1;
    private int clientId_;
    /**
     * required int32 clientId = 1;
     */
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 clientId = 1;
     */
    public int getClientId() {
      return clientId_;
    }

    private void initFields() {
      clientId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse) obj;

      boolean result = true;
      result = result && (hasClientId() == other.hasClientId());
      if (hasClientId()) {
        result = result && (getClientId()
            == other.getClientId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasClientId()) {
        hash = (37 * hash) + CLIENTID_FIELD_NUMBER;
        hash = (53 * hash) + getClientId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetClientIdResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        clientId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_GetClientIdResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientId_ = clientId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance()) return this;
        if (other.hasClientId()) {
          setClientId(other.getClientId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 clientId = 1;
      private int clientId_ ;
      /**
       * required int32 clientId = 1;
       */
      public boolean hasClientId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 clientId = 1;
       */
      public int getClientId() {
        return clientId_;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder setClientId(int value) {
        bitField0_ |= 0x00000001;
        clientId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder clearClientId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetClientIdResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetClientIdResponse)
  }

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

    // required int32 clientId = 1;
    /**
     * required int32 clientId = 1;
     */
    boolean hasClientId();
    /**
     * required int32 clientId = 1;
     */
    int getClientId();
  }
  /**
   * Protobuf type {@code KeepAliveRequest}
   */
  public static final class KeepAliveRequest extends
      com.google.protobuf.GeneratedMessage
      implements KeepAliveRequestOrBuilder {
    // Use KeepAliveRequest.newBuilder() to construct.
    private KeepAliveRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private KeepAliveRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public KeepAliveRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private KeepAliveRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              clientId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 clientId = 1;
    public static final int CLIENTID_FIELD_NUMBER = 1;
    private int clientId_;
    /**
     * required int32 clientId = 1;
     */
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 clientId = 1;
     */
    public int getClientId() {
      return clientId_;
    }

    private void initFields() {
      clientId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest) obj;

      boolean result = true;
      result = result && (hasClientId() == other.hasClientId());
      if (hasClientId()) {
        result = result && (getClientId()
            == other.getClientId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasClientId()) {
        hash = (37 * hash) + CLIENTID_FIELD_NUMBER;
        hash = (53 * hash) + getClientId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code KeepAliveRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        clientId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientId_ = clientId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.getDefaultInstance()) return this;
        if (other.hasClientId()) {
          setClientId(other.getClientId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 clientId = 1;
      private int clientId_ ;
      /**
       * required int32 clientId = 1;
       */
      public boolean hasClientId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 clientId = 1;
       */
      public int getClientId() {
        return clientId_;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder setClientId(int value) {
        bitField0_ |= 0x00000001;
        clientId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder clearClientId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:KeepAliveRequest)
    }

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

    // @@protoc_insertion_point(class_scope:KeepAliveRequest)
  }

  public interface KeepAliveResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code KeepAliveResponse}
   */
  public static final class KeepAliveResponse extends
      com.google.protobuf.GeneratedMessage
      implements KeepAliveResponseOrBuilder {
    // Use KeepAliveResponse.newBuilder() to construct.
    private KeepAliveResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private KeepAliveResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public KeepAliveResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private KeepAliveResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code KeepAliveResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_KeepAliveResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:KeepAliveResponse)
    }

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

    // @@protoc_insertion_point(class_scope:KeepAliveResponse)
  }

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

    // required int32 clientId = 1;
    /**
     * required int32 clientId = 1;
     */
    boolean hasClientId();
    /**
     * required int32 clientId = 1;
     */
    int getClientId();
  }
  /**
   * Protobuf type {@code ClientRegisterRequest}
   */
  public static final class ClientRegisterRequest extends
      com.google.protobuf.GeneratedMessage
      implements ClientRegisterRequestOrBuilder {
    // Use ClientRegisterRequest.newBuilder() to construct.
    private ClientRegisterRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ClientRegisterRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ClientRegisterRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ClientRegisterRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              clientId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 clientId = 1;
    public static final int CLIENTID_FIELD_NUMBER = 1;
    private int clientId_;
    /**
     * required int32 clientId = 1;
     */
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 clientId = 1;
     */
    public int getClientId() {
      return clientId_;
    }

    private void initFields() {
      clientId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest) obj;

      boolean result = true;
      result = result && (hasClientId() == other.hasClientId());
      if (hasClientId()) {
        result = result && (getClientId()
            == other.getClientId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasClientId()) {
        hash = (37 * hash) + CLIENTID_FIELD_NUMBER;
        hash = (53 * hash) + getClientId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ClientRegisterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        clientId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientId_ = clientId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.getDefaultInstance()) return this;
        if (other.hasClientId()) {
          setClientId(other.getClientId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 clientId = 1;
      private int clientId_ ;
      /**
       * required int32 clientId = 1;
       */
      public boolean hasClientId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 clientId = 1;
       */
      public int getClientId() {
        return clientId_;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder setClientId(int value) {
        bitField0_ |= 0x00000001;
        clientId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 clientId = 1;
       */
      public Builder clearClientId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ClientRegisterRequest)
    }

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

    // @@protoc_insertion_point(class_scope:ClientRegisterRequest)
  }

  public interface ClientRegisterResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code ClientRegisterResponse}
   */
  public static final class ClientRegisterResponse extends
      com.google.protobuf.GeneratedMessage
      implements ClientRegisterResponseOrBuilder {
    // Use ClientRegisterResponse.newBuilder() to construct.
    private ClientRegisterResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ClientRegisterResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ClientRegisterResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ClientRegisterResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse) obj;

      boolean result = true;
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ClientRegisterResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_ClientRegisterResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ClientRegisterResponse)
    }

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

    // @@protoc_insertion_point(class_scope:ClientRegisterResponse)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code CheckModelSavedRequest}
   */
  public static final class CheckModelSavedRequest extends
      com.google.protobuf.GeneratedMessage
      implements CheckModelSavedRequestOrBuilder {
    // Use CheckModelSavedRequest.newBuilder() to construct.
    private CheckModelSavedRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CheckModelSavedRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CheckModelSavedRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CheckModelSavedRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    /**
     * required int32 requestId = 1;
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 requestId = 1;
     */
    public int getRequestId() {
      return requestId_;
    }

    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CheckModelSavedRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 requestId = 1;
      private int requestId_ ;
      /**
       * required int32 requestId = 1;
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 requestId = 1;
       */
      public int getRequestId() {
        return requestId_;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CheckModelSavedRequest)
    }

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

    // @@protoc_insertion_point(class_scope:CheckModelSavedRequest)
  }

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

    // required int32 status = 1;
    /**
     * required int32 status = 1;
     */
    boolean hasStatus();
    /**
     * required int32 status = 1;
     */
    int getStatus();

    // optional string log = 2;
    /**
     * optional string log = 2;
     */
    boolean hasLog();
    /**
     * optional string log = 2;
     */
    java.lang.String getLog();
    /**
     * optional string log = 2;
     */
    com.google.protobuf.ByteString
        getLogBytes();
  }
  /**
   * Protobuf type {@code CheckModelSavedResponse}
   */
  public static final class CheckModelSavedResponse extends
      com.google.protobuf.GeneratedMessage
      implements CheckModelSavedResponseOrBuilder {
    // Use CheckModelSavedResponse.newBuilder() to construct.
    private CheckModelSavedResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CheckModelSavedResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CheckModelSavedResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CheckModelSavedResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              status_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              log_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 status = 1;
    public static final int STATUS_FIELD_NUMBER = 1;
    private int status_;
    /**
     * required int32 status = 1;
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 status = 1;
     */
    public int getStatus() {
      return status_;
    }

    // optional string log = 2;
    public static final int LOG_FIELD_NUMBER = 2;
    private java.lang.Object log_;
    /**
     * optional string log = 2;
     */
    public boolean hasLog() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string log = 2;
     */
    public java.lang.String getLog() {
      java.lang.Object ref = log_;
      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()) {
          log_ = s;
        }
        return s;
      }
    }
    /**
     * optional string log = 2;
     */
    public com.google.protobuf.ByteString
        getLogBytes() {
      java.lang.Object ref = log_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        log_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      status_ = 0;
      log_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && (getStatus()
            == other.getStatus());
      }
      result = result && (hasLog() == other.hasLog());
      if (hasLog()) {
        result = result && getLog()
            .equals(other.getLog());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus();
      }
      if (hasLog()) {
        hash = (37 * hash) + LOG_FIELD_NUMBER;
        hash = (53 * hash) + getLog().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CheckModelSavedResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        status_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        log_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelSavedResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.log_ = log_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasLog()) {
          bitField0_ |= 0x00000002;
          log_ = other.log_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 status = 1;
      private int status_ ;
      /**
       * required int32 status = 1;
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 status = 1;
       */
      public int getStatus() {
        return status_;
      }
      /**
       * required int32 status = 1;
       */
      public Builder setStatus(int value) {
        bitField0_ |= 0x00000001;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 status = 1;
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = 0;
        onChanged();
        return this;
      }

      // optional string log = 2;
      private java.lang.Object log_ = "";
      /**
       * optional string log = 2;
       */
      public boolean hasLog() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string log = 2;
       */
      public java.lang.String getLog() {
        java.lang.Object ref = log_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          log_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string log = 2;
       */
      public com.google.protobuf.ByteString
          getLogBytes() {
        java.lang.Object ref = log_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          log_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string log = 2;
       */
      public Builder setLog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        log_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string log = 2;
       */
      public Builder clearLog() {
        bitField0_ = (bitField0_ & ~0x00000002);
        log_ = getDefaultInstance().getLog();
        onChanged();
        return this;
      }
      /**
       * optional string log = 2;
       */
      public Builder setLogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        log_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CheckModelSavedResponse)
    }

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

    // @@protoc_insertion_point(class_scope:CheckModelSavedResponse)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code CheckModelLoadedRequest}
   */
  public static final class CheckModelLoadedRequest extends
      com.google.protobuf.GeneratedMessage
      implements CheckModelLoadedRequestOrBuilder {
    // Use CheckModelLoadedRequest.newBuilder() to construct.
    private CheckModelLoadedRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CheckModelLoadedRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CheckModelLoadedRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CheckModelLoadedRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    /**
     * required int32 requestId = 1;
     */
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 requestId = 1;
     */
    public int getRequestId() {
      return requestId_;
    }

    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CheckModelLoadedRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 requestId = 1;
      private int requestId_ ;
      /**
       * required int32 requestId = 1;
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 requestId = 1;
       */
      public int getRequestId() {
        return requestId_;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 requestId = 1;
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CheckModelLoadedRequest)
    }

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

    // @@protoc_insertion_point(class_scope:CheckModelLoadedRequest)
  }

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

    // required int32 status = 1;
    /**
     * required int32 status = 1;
     */
    boolean hasStatus();
    /**
     * required int32 status = 1;
     */
    int getStatus();

    // optional string log = 2;
    /**
     * optional string log = 2;
     */
    boolean hasLog();
    /**
     * optional string log = 2;
     */
    java.lang.String getLog();
    /**
     * optional string log = 2;
     */
    com.google.protobuf.ByteString
        getLogBytes();
  }
  /**
   * Protobuf type {@code CheckModelLoadedResponse}
   */
  public static final class CheckModelLoadedResponse extends
      com.google.protobuf.GeneratedMessage
      implements CheckModelLoadedResponseOrBuilder {
    // Use CheckModelLoadedResponse.newBuilder() to construct.
    private CheckModelLoadedResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CheckModelLoadedResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CheckModelLoadedResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CheckModelLoadedResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              status_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              log_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 status = 1;
    public static final int STATUS_FIELD_NUMBER = 1;
    private int status_;
    /**
     * required int32 status = 1;
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 status = 1;
     */
    public int getStatus() {
      return status_;
    }

    // optional string log = 2;
    public static final int LOG_FIELD_NUMBER = 2;
    private java.lang.Object log_;
    /**
     * optional string log = 2;
     */
    public boolean hasLog() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string log = 2;
     */
    public java.lang.String getLog() {
      java.lang.Object ref = log_;
      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()) {
          log_ = s;
        }
        return s;
      }
    }
    /**
     * optional string log = 2;
     */
    public com.google.protobuf.ByteString
        getLogBytes() {
      java.lang.Object ref = log_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        log_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      status_ = 0;
      log_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse other = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && (getStatus()
            == other.getStatus());
      }
      result = result && (hasLog() == other.hasLog());
      if (hasLog()) {
        result = result && getLog()
            .equals(other.getLog());
      }
      result = result &&
          getUnknownFields().equals(other.getUnknownFields());
      return result;
    }

    private int memoizedHashCode = 0;
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus();
      }
      if (hasLog()) {
        hash = (37 * hash) + LOG_FIELD_NUMBER;
        hash = (53 * hash) + getLog().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CheckModelLoadedResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.class, com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        status_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        log_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.internal_static_CheckModelLoadedResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance();
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse build() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse buildPartial() {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse result = new com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.log_ = log_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse) {
          return mergeFrom((com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse other) {
        if (other == com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasLog()) {
          bitField0_ |= 0x00000002;
          log_ = other.log_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 status = 1;
      private int status_ ;
      /**
       * required int32 status = 1;
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 status = 1;
       */
      public int getStatus() {
        return status_;
      }
      /**
       * required int32 status = 1;
       */
      public Builder setStatus(int value) {
        bitField0_ |= 0x00000001;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 status = 1;
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = 0;
        onChanged();
        return this;
      }

      // optional string log = 2;
      private java.lang.Object log_ = "";
      /**
       * optional string log = 2;
       */
      public boolean hasLog() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string log = 2;
       */
      public java.lang.String getLog() {
        java.lang.Object ref = log_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          log_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string log = 2;
       */
      public com.google.protobuf.ByteString
          getLogBytes() {
        java.lang.Object ref = log_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          log_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string log = 2;
       */
      public Builder setLog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        log_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string log = 2;
       */
      public Builder clearLog() {
        bitField0_ = (bitField0_ & ~0x00000002);
        log_ = getDefaultInstance().getLog();
        onChanged();
        return this;
      }
      /**
       * optional string log = 2;
       */
      public Builder setLogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        log_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CheckModelLoadedResponse)
    }

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

    // @@protoc_insertion_point(class_scope:CheckModelLoadedResponse)
  }

  /**
   * Protobuf service {@code ClientMasterService}
   */
  public static abstract class ClientMasterService
      implements com.google.protobuf.Service {
    protected ClientMasterService() {}

    public interface Interface {
      /**
       * rpc start(.StartRequest) returns (.StartResponse);
       */
      public abstract void start(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getAllPSLocation(.GetAllPSLocationRequest) returns (.GetAllPSLocationResponse);
       */
      public abstract void getAllPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc save(.SaveRequest) returns (.SaveResponse);
       */
      public abstract void save(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc load(.LoadRequest) returns (.LoadResponse);
       */
      public abstract void load(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc stop(.StopRequest) returns (.StopResponse);
       */
      public abstract void stop(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc ping(.PingRequest) returns (.PingResponse);
       */
      public abstract void ping(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getJobReport(.GetJobReportRequest) returns (.GetJobReportResponse);
       */
      public abstract void getJobReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getWorkerLogDir(.GetWorkerLogDirRequest) returns (.GetWorkerLogDirResponse);
       */
      public abstract void getWorkerLogDir(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc createMatrices(.CreateMatricesRequest) returns (.CreateMatricesResponse);
       */
      public abstract void createMatrices(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc checkMatricesCreated(.CheckMatricesCreatedRequest) returns (.CheckMatricesCreatedResponse);
       */
      public abstract void checkMatricesCreated(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc checkModelSaved(.CheckModelSavedRequest) returns (.CheckModelSavedResponse);
       */
      public abstract void checkModelSaved(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc checkModelLoaded(.CheckModelLoadedRequest) returns (.CheckModelLoadedResponse);
       */
      public abstract void checkModelLoaded(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc setParams(.SetParamsRequest) returns (.SetParamsResponse);
       */
      public abstract void setParams(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getClientId(.GetClientIdRequest) returns (.GetClientIdResponse);
       */
      public abstract void getClientId(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc keepAlive(.KeepAliveRequest) returns (.KeepAliveResponse);
       */
      public abstract void keepAlive(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc clientRegister(.ClientRegisterRequest) returns (.ClientRegisterResponse);
       */
      public abstract void clientRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request,
          com.google.protobuf.RpcCallback done);

    }

    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new ClientMasterService() {
        @java.lang.Override
        public  void start(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.start(controller, request, done);
        }

        @java.lang.Override
        public  void getAllPSLocation(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getAllPSLocation(controller, request, done);
        }

        @java.lang.Override
        public  void save(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.save(controller, request, done);
        }

        @java.lang.Override
        public  void load(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.load(controller, request, done);
        }

        @java.lang.Override
        public  void stop(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.stop(controller, request, done);
        }

        @java.lang.Override
        public  void ping(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.ping(controller, request, done);
        }

        @java.lang.Override
        public  void getJobReport(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getJobReport(controller, request, done);
        }

        @java.lang.Override
        public  void getWorkerLogDir(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getWorkerLogDir(controller, request, done);
        }

        @java.lang.Override
        public  void createMatrices(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.createMatrices(controller, request, done);
        }

        @java.lang.Override
        public  void checkMatricesCreated(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.checkMatricesCreated(controller, request, done);
        }

        @java.lang.Override
        public  void checkModelSaved(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.checkModelSaved(controller, request, done);
        }

        @java.lang.Override
        public  void checkModelLoaded(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.checkModelLoaded(controller, request, done);
        }

        @java.lang.Override
        public  void setParams(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.setParams(controller, request, done);
        }

        @java.lang.Override
        public  void getClientId(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getClientId(controller, request, done);
        }

        @java.lang.Override
        public  void keepAlive(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.keepAlive(controller, request, done);
        }

        @java.lang.Override
        public  void clientRegister(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.clientRegister(controller, request, done);
        }

      };
    }

    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }

        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.start(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest)request);
            case 1:
              return impl.getAllPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest)request);
            case 2:
              return impl.save(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest)request);
            case 3:
              return impl.load(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest)request);
            case 4:
              return impl.stop(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest)request);
            case 5:
              return impl.ping(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest)request);
            case 6:
              return impl.getJobReport(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest)request);
            case 7:
              return impl.getWorkerLogDir(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest)request);
            case 8:
              return impl.createMatrices(controller, (com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest)request);
            case 9:
              return impl.checkMatricesCreated(controller, (com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest)request);
            case 10:
              return impl.checkModelSaved(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest)request);
            case 11:
              return impl.checkModelLoaded(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest)request);
            case 12:
              return impl.setParams(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest)request);
            case 13:
              return impl.getClientId(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest)request);
            case 14:
              return impl.keepAlive(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest)request);
            case 15:
              return impl.clientRegister(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.getDefaultInstance();
            case 1:
              return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest.getDefaultInstance();
            case 2:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.getDefaultInstance();
            case 3:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.getDefaultInstance();
            case 4:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.getDefaultInstance();
            case 5:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.getDefaultInstance();
            case 6:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.getDefaultInstance();
            case 7:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.getDefaultInstance();
            case 8:
              return com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest.getDefaultInstance();
            case 9:
              return com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest.getDefaultInstance();
            case 10:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.getDefaultInstance();
            case 11:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.getDefaultInstance();
            case 12:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.getDefaultInstance();
            case 13:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.getDefaultInstance();
            case 14:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.getDefaultInstance();
            case 15:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance();
            case 1:
              return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance();
            case 2:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance();
            case 3:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance();
            case 4:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance();
            case 5:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance();
            case 6:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance();
            case 7:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance();
            case 8:
              return com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.getDefaultInstance();
            case 9:
              return com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.getDefaultInstance();
            case 10:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance();
            case 11:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance();
            case 12:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance();
            case 13:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance();
            case 14:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance();
            case 15:
              return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

      };
    }

    /**
     * rpc start(.StartRequest) returns (.StartResponse);
     */
    public abstract void start(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getAllPSLocation(.GetAllPSLocationRequest) returns (.GetAllPSLocationResponse);
     */
    public abstract void getAllPSLocation(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc save(.SaveRequest) returns (.SaveResponse);
     */
    public abstract void save(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc load(.LoadRequest) returns (.LoadResponse);
     */
    public abstract void load(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc stop(.StopRequest) returns (.StopResponse);
     */
    public abstract void stop(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc ping(.PingRequest) returns (.PingResponse);
     */
    public abstract void ping(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getJobReport(.GetJobReportRequest) returns (.GetJobReportResponse);
     */
    public abstract void getJobReport(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getWorkerLogDir(.GetWorkerLogDirRequest) returns (.GetWorkerLogDirResponse);
     */
    public abstract void getWorkerLogDir(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc createMatrices(.CreateMatricesRequest) returns (.CreateMatricesResponse);
     */
    public abstract void createMatrices(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc checkMatricesCreated(.CheckMatricesCreatedRequest) returns (.CheckMatricesCreatedResponse);
     */
    public abstract void checkMatricesCreated(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc checkModelSaved(.CheckModelSavedRequest) returns (.CheckModelSavedResponse);
     */
    public abstract void checkModelSaved(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc checkModelLoaded(.CheckModelLoadedRequest) returns (.CheckModelLoadedResponse);
     */
    public abstract void checkModelLoaded(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc setParams(.SetParamsRequest) returns (.SetParamsResponse);
     */
    public abstract void setParams(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getClientId(.GetClientIdRequest) returns (.GetClientIdResponse);
     */
    public abstract void getClientId(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc keepAlive(.KeepAliveRequest) returns (.KeepAliveResponse);
     */
    public abstract void keepAlive(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc clientRegister(.ClientRegisterRequest) returns (.ClientRegisterResponse);
     */
    public abstract void clientRegister(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request,
        com.google.protobuf.RpcCallback done);

    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }

    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.start(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.getAllPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.save(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.load(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.stop(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.ping(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.getJobReport(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.getWorkerLogDir(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.createMatrices(controller, (com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.checkMatricesCreated(controller, (com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 10:
          this.checkModelSaved(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 11:
          this.checkModelLoaded(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 12:
          this.setParams(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 13:
          this.getClientId(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 14:
          this.keepAlive(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 15:
          this.clientRegister(controller, (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest.getDefaultInstance();
        case 1:
          return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest.getDefaultInstance();
        case 2:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest.getDefaultInstance();
        case 3:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest.getDefaultInstance();
        case 4:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest.getDefaultInstance();
        case 5:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest.getDefaultInstance();
        case 6:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest.getDefaultInstance();
        case 7:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest.getDefaultInstance();
        case 8:
          return com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest.getDefaultInstance();
        case 9:
          return com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest.getDefaultInstance();
        case 10:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest.getDefaultInstance();
        case 11:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest.getDefaultInstance();
        case 12:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest.getDefaultInstance();
        case 13:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest.getDefaultInstance();
        case 14:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest.getDefaultInstance();
        case 15:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance();
        case 1:
          return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance();
        case 2:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance();
        case 3:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance();
        case 4:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance();
        case 5:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance();
        case 6:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance();
        case 7:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance();
        case 8:
          return com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.getDefaultInstance();
        case 9:
          return com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.getDefaultInstance();
        case 10:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance();
        case 11:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance();
        case 12:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance();
        case 13:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance();
        case 14:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance();
        case 15:
          return com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }

    public static final class Stub extends com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientMasterService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }

      private final com.google.protobuf.RpcChannel channel;

      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }

      public  void start(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance()));
      }

      public  void getAllPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.class,
            com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance()));
      }

      public  void save(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance()));
      }

      public  void load(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance()));
      }

      public  void stop(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance()));
      }

      public  void ping(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance()));
      }

      public  void getJobReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance()));
      }

      public  void getWorkerLogDir(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance()));
      }

      public  void createMatrices(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.class,
            com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.getDefaultInstance()));
      }

      public  void checkMatricesCreated(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.class,
            com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.getDefaultInstance()));
      }

      public  void checkModelSaved(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(10),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance()));
      }

      public  void checkModelLoaded(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(11),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance()));
      }

      public  void setParams(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(12),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance()));
      }

      public  void getClientId(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(13),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance()));
      }

      public  void keepAlive(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(14),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance()));
      }

      public  void clientRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(15),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.class,
            com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance()));
      }
    }

    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }

    public interface BlockingInterface {
      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse start(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse getAllPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse save(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse load(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse stop(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse ping(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse getJobReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse getWorkerLogDir(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse createMatrices(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse checkMatricesCreated(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse checkModelSaved(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse checkModelLoaded(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse setParams(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse getClientId(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse keepAlive(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse clientRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request)
          throws com.google.protobuf.ServiceException;
    }

    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }

      private final com.google.protobuf.BlockingRpcChannel channel;

      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse start(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StartResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse getAllPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse save(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SaveResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse load(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.LoadResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse stop(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.StopResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse ping(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.PingResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse getJobReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetJobReportResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse getWorkerLogDir(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetWorkerLogDirResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse createMatrices(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.CreateMatricesResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse checkMatricesCreated(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.CheckMatricesCreatedResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse checkModelSaved(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(10),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelSavedResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse checkModelLoaded(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(11),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.CheckModelLoadedResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse setParams(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(12),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.SetParamsResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse getClientId(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(13),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.GetClientIdResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse keepAlive(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(14),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.KeepAliveResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse clientRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(15),
          controller,
          request,
          com.tencent.angel.protobuf.generated.ClientMasterServiceProtos.ClientRegisterResponse.getDefaultInstance());
      }

    }

    // @@protoc_insertion_point(class_scope:ClientMasterService)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CounterProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CounterProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_StringCounterMapProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StringCounterMapProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CounterGroupProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CounterGroupProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetJobReportRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetJobReportRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_JobReportProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_JobReportProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetJobReportResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetJobReportResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PingRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PingRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PingResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PingResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_StartRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StartRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_StartResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StartResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_MatrixSaveContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_MatrixSaveContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ModelSaveContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ModelSaveContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_MatrixLoadContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_MatrixLoadContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ModelLoadContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ModelLoadContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SetParamsRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SetParamsRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SetParamsResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SetParamsResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetWorkerLogDirRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetWorkerLogDirRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetWorkerLogDirResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetWorkerLogDirResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_StopRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StopRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_StopResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StopResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetClientIdRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetClientIdRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetClientIdResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetClientIdResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_KeepAliveRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_KeepAliveRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_KeepAliveResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_KeepAliveResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ClientRegisterRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ClientRegisterRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ClientRegisterResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ClientRegisterResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CheckModelSavedRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CheckModelSavedRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CheckModelSavedResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CheckModelSavedResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CheckModelLoadedRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CheckModelLoadedRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CheckModelLoadedResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CheckModelLoadedResponse_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\031ClientMasterService.proto\032\010ML.proto\"@\n" +
      "\014CounterProto\022\014\n\004name\030\001 \001(\t\022\023\n\013displayNa" +
      "me\030\002 \001(\t\022\r\n\005value\030\003 \001(\003\"B\n\025StringCounter" +
      "MapProto\022\013\n\003key\030\001 \001(\t\022\034\n\005value\030\002 \001(\0132\r.C" +
      "ounterProto\"`\n\021CounterGroupProto\022\014\n\004name" +
      "\030\001 \001(\t\022\023\n\013displayName\030\002 \001(\t\022(\n\010counters\030" +
      "\003 \003(\0132\026.StringCounterMapProto\"$\n\023GetJobR" +
      "eportRequest\022\r\n\005appId\030\001 \001(\t\"\252\002\n\016JobRepor" +
      "tProto\022\r\n\005appId\030\001 \001(\t\022 \n\010jobState\030\002 \001(\0162" +
      "\016.JobStateProto\022\024\n\014curIteration\030\003 \001(\005\022\026\n",
      "\016totalIteration\030\004 \001(\005\022\014\n\004loss\030\005 \001(\002\022\017\n\007s" +
      "uccess\030\006 \001(\002\022\021\n\tstartTime\030\007 \001(\003\022\022\n\nfinis" +
      "hTime\030\010 \001(\003\022\014\n\004user\030\t \001(\t\022\017\n\007jobName\030\n \001" +
      "(\t\022\023\n\013trackingUrl\030\013 \001(\t\022\023\n\013diagnostics\030\014" +
      " \001(\t\022\022\n\nsubmitTime\030\r \001(\003\022\026\n\007metrics\030\016 \003(" +
      "\0132\005.Pair\":\n\024GetJobReportResponse\022\"\n\tjobR" +
      "eport\030\001 \001(\0132\017.JobReportProto\"\r\n\013PingRequ" +
      "est\"\016\n\014PingResponse\"\016\n\014StartRequest\"\017\n\rS" +
      "tartResponse\":\n\013SaveRequest\022+\n\013saveConte" +
      "xt\030\001 \002(\0132\026.ModelSaveContextProto\"p\n\026Matr",
      "ixSaveContextProto\022\022\n\nmatrixName\030\001 \002(\t\022\027" +
      "\n\017formatClassName\030\002 \002(\t\022\022\n\nrowIndexes\030\003 " +
      "\003(\005\022\025\n\006params\030\004 \003(\0132\005.Pair\"[\n\025ModelSaveC" +
      "ontextProto\022\020\n\010savePath\030\001 \002(\t\0220\n\017matrixC" +
      "ontextes\030\002 \003(\0132\027.MatrixSaveContextProto\"" +
      "!\n\014SaveResponse\022\021\n\trequestId\030\001 \002(\005\":\n\013Lo" +
      "adRequest\022+\n\013loadContext\030\001 \002(\0132\026.ModelLo" +
      "adContextProto\",\n\026MatrixLoadContextProto" +
      "\022\022\n\nmatrixName\030\001 \002(\t\"[\n\025ModelLoadContext" +
      "Proto\022\020\n\010loadPath\030\001 \002(\t\0220\n\017matrixContext",
      "es\030\002 \003(\0132\027.MatrixLoadContextProto\"!\n\014Loa" +
      "dResponse\022\021\n\trequestId\030\001 \002(\005\"&\n\020SetParam" +
      "sRequest\022\022\n\003kvs\030\001 \003(\0132\005.Pair\"\023\n\021SetParam" +
      "sResponse\":\n\026GetWorkerLogDirRequest\022 \n\010w" +
      "orkerId\030\001 \002(\0132\016.WorkerIdProto\")\n\027GetWork" +
      "erLogDirResponse\022\016\n\006logDir\030\001 \002(\t\"!\n\013Stop" +
      "Request\022\022\n\nexitStatus\030\001 \002(\005\"\016\n\014StopRespo" +
      "nse\"\024\n\022GetClientIdRequest\"\'\n\023GetClientId" +
      "Response\022\020\n\010clientId\030\001 \002(\005\"$\n\020KeepAliveR" +
      "equest\022\020\n\010clientId\030\001 \002(\005\"\023\n\021KeepAliveRes",
      "ponse\")\n\025ClientRegisterRequest\022\020\n\010client" +
      "Id\030\001 \002(\005\"\030\n\026ClientRegisterResponse\"+\n\026Ch" +
      "eckModelSavedRequest\022\021\n\trequestId\030\001 \002(\005\"" +
      "6\n\027CheckModelSavedResponse\022\016\n\006status\030\001 \002" +
      "(\005\022\013\n\003log\030\002 \001(\t\",\n\027CheckModelLoadedReque" +
      "st\022\021\n\trequestId\030\001 \002(\005\"7\n\030CheckModelLoade" +
      "dResponse\022\016\n\006status\030\001 \002(\005\022\013\n\003log\030\002 \001(\t*\246" +
      "\001\n\rJobStateProto\022\t\n\005J_NEW\020\001\022\014\n\010J_INITED\020" +
      "\002\022\025\n\021J_PREPARE_WORKERS\020\003\022\r\n\tJ_RUNNING\020\004\022" +
      "\027\n\023J_EXECUTE_SUCCESSED\020\005\022\020\n\014J_COMMITTING",
      "\020\006\022\017\n\013J_SUCCEEDED\020\007\022\014\n\010J_FAILED\020\010\022\014\n\010J_K" +
      "ILLED\020\t2\251\007\n\023ClientMasterService\022&\n\005start" +
      "\022\r.StartRequest\032\016.StartResponse\022G\n\020getAl" +
      "lPSLocation\022\030.GetAllPSLocationRequest\032\031." +
      "GetAllPSLocationResponse\022#\n\004save\022\014.SaveR" +
      "equest\032\r.SaveResponse\022#\n\004load\022\014.LoadRequ" +
      "est\032\r.LoadResponse\022#\n\004stop\022\014.StopRequest" +
      "\032\r.StopResponse\022#\n\004ping\022\014.PingRequest\032\r." +
      "PingResponse\022;\n\014getJobReport\022\024.GetJobRep" +
      "ortRequest\032\025.GetJobReportResponse\022D\n\017get",
      "WorkerLogDir\022\027.GetWorkerLogDirRequest\032\030." +
      "GetWorkerLogDirResponse\022A\n\016createMatrice" +
      "s\022\026.CreateMatricesRequest\032\027.CreateMatric" +
      "esResponse\022S\n\024checkMatricesCreated\022\034.Che" +
      "ckMatricesCreatedRequest\032\035.CheckMatrices" +
      "CreatedResponse\022D\n\017checkModelSaved\022\027.Che" +
      "ckModelSavedRequest\032\030.CheckModelSavedRes" +
      "ponse\022G\n\020checkModelLoaded\022\030.CheckModelLo" +
      "adedRequest\032\031.CheckModelLoadedResponse\0222" +
      "\n\tsetParams\022\021.SetParamsRequest\032\022.SetPara",
      "msResponse\0228\n\013getClientId\022\023.GetClientIdR" +
      "equest\032\024.GetClientIdResponse\0222\n\tkeepAliv" +
      "e\022\021.KeepAliveRequest\032\022.KeepAliveResponse" +
      "\022A\n\016clientRegister\022\026.ClientRegisterReque" +
      "st\032\027.ClientRegisterResponseBI\n$com.tence" +
      "nt.angel.protobuf.generatedB\031ClientMaste" +
      "rServiceProtosH\001\210\001\001\240\001\001"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_CounterProto_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_CounterProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CounterProto_descriptor,
              new java.lang.String[] { "Name", "DisplayName", "Value", });
          internal_static_StringCounterMapProto_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_StringCounterMapProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StringCounterMapProto_descriptor,
              new java.lang.String[] { "Key", "Value", });
          internal_static_CounterGroupProto_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_CounterGroupProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CounterGroupProto_descriptor,
              new java.lang.String[] { "Name", "DisplayName", "Counters", });
          internal_static_GetJobReportRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_GetJobReportRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetJobReportRequest_descriptor,
              new java.lang.String[] { "AppId", });
          internal_static_JobReportProto_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_JobReportProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_JobReportProto_descriptor,
              new java.lang.String[] { "AppId", "JobState", "CurIteration", "TotalIteration", "Loss", "Success", "StartTime", "FinishTime", "User", "JobName", "TrackingUrl", "Diagnostics", "SubmitTime", "Metrics", });
          internal_static_GetJobReportResponse_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_GetJobReportResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetJobReportResponse_descriptor,
              new java.lang.String[] { "JobReport", });
          internal_static_PingRequest_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_PingRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PingRequest_descriptor,
              new java.lang.String[] { });
          internal_static_PingResponse_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_PingResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PingResponse_descriptor,
              new java.lang.String[] { });
          internal_static_StartRequest_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_StartRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StartRequest_descriptor,
              new java.lang.String[] { });
          internal_static_StartResponse_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_StartResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StartResponse_descriptor,
              new java.lang.String[] { });
          internal_static_SaveRequest_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_SaveRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveRequest_descriptor,
              new java.lang.String[] { "SaveContext", });
          internal_static_MatrixSaveContextProto_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_MatrixSaveContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_MatrixSaveContextProto_descriptor,
              new java.lang.String[] { "MatrixName", "FormatClassName", "RowIndexes", "Params", });
          internal_static_ModelSaveContextProto_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_ModelSaveContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ModelSaveContextProto_descriptor,
              new java.lang.String[] { "SavePath", "MatrixContextes", });
          internal_static_SaveResponse_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_SaveResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveResponse_descriptor,
              new java.lang.String[] { "RequestId", });
          internal_static_LoadRequest_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_LoadRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadRequest_descriptor,
              new java.lang.String[] { "LoadContext", });
          internal_static_MatrixLoadContextProto_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_MatrixLoadContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_MatrixLoadContextProto_descriptor,
              new java.lang.String[] { "MatrixName", });
          internal_static_ModelLoadContextProto_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_ModelLoadContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ModelLoadContextProto_descriptor,
              new java.lang.String[] { "LoadPath", "MatrixContextes", });
          internal_static_LoadResponse_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_LoadResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadResponse_descriptor,
              new java.lang.String[] { "RequestId", });
          internal_static_SetParamsRequest_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_SetParamsRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SetParamsRequest_descriptor,
              new java.lang.String[] { "Kvs", });
          internal_static_SetParamsResponse_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_SetParamsResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SetParamsResponse_descriptor,
              new java.lang.String[] { });
          internal_static_GetWorkerLogDirRequest_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_GetWorkerLogDirRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetWorkerLogDirRequest_descriptor,
              new java.lang.String[] { "WorkerId", });
          internal_static_GetWorkerLogDirResponse_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_GetWorkerLogDirResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetWorkerLogDirResponse_descriptor,
              new java.lang.String[] { "LogDir", });
          internal_static_StopRequest_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_StopRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StopRequest_descriptor,
              new java.lang.String[] { "ExitStatus", });
          internal_static_StopResponse_descriptor =
            getDescriptor().getMessageTypes().get(23);
          internal_static_StopResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StopResponse_descriptor,
              new java.lang.String[] { });
          internal_static_GetClientIdRequest_descriptor =
            getDescriptor().getMessageTypes().get(24);
          internal_static_GetClientIdRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetClientIdRequest_descriptor,
              new java.lang.String[] { });
          internal_static_GetClientIdResponse_descriptor =
            getDescriptor().getMessageTypes().get(25);
          internal_static_GetClientIdResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetClientIdResponse_descriptor,
              new java.lang.String[] { "ClientId", });
          internal_static_KeepAliveRequest_descriptor =
            getDescriptor().getMessageTypes().get(26);
          internal_static_KeepAliveRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_KeepAliveRequest_descriptor,
              new java.lang.String[] { "ClientId", });
          internal_static_KeepAliveResponse_descriptor =
            getDescriptor().getMessageTypes().get(27);
          internal_static_KeepAliveResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_KeepAliveResponse_descriptor,
              new java.lang.String[] { });
          internal_static_ClientRegisterRequest_descriptor =
            getDescriptor().getMessageTypes().get(28);
          internal_static_ClientRegisterRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ClientRegisterRequest_descriptor,
              new java.lang.String[] { "ClientId", });
          internal_static_ClientRegisterResponse_descriptor =
            getDescriptor().getMessageTypes().get(29);
          internal_static_ClientRegisterResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ClientRegisterResponse_descriptor,
              new java.lang.String[] { });
          internal_static_CheckModelSavedRequest_descriptor =
            getDescriptor().getMessageTypes().get(30);
          internal_static_CheckModelSavedRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CheckModelSavedRequest_descriptor,
              new java.lang.String[] { "RequestId", });
          internal_static_CheckModelSavedResponse_descriptor =
            getDescriptor().getMessageTypes().get(31);
          internal_static_CheckModelSavedResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CheckModelSavedResponse_descriptor,
              new java.lang.String[] { "Status", "Log", });
          internal_static_CheckModelLoadedRequest_descriptor =
            getDescriptor().getMessageTypes().get(32);
          internal_static_CheckModelLoadedRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CheckModelLoadedRequest_descriptor,
              new java.lang.String[] { "RequestId", });
          internal_static_CheckModelLoadedResponse_descriptor =
            getDescriptor().getMessageTypes().get(33);
          internal_static_CheckModelLoadedResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CheckModelLoadedResponse_descriptor,
              new java.lang.String[] { "Status", "Log", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.tencent.angel.protobuf.generated.MLProtos.getDescriptor(),
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy