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

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

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

package com.tencent.angel.protobuf.generated;

public final class PSMasterServiceProtos {
  private PSMasterServiceProtos() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code PSCommandProto}
   */
  public enum PSCommandProto
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * PSCOMMAND_OK = 1;
     */
    PSCOMMAND_OK(0, 1),
    /**
     * PSCOMMAND_RESYNC = 2;
     */
    PSCOMMAND_RESYNC(1, 2),
    /**
     * PSCOMMAND_SHUTDOWN = 3;
     */
    PSCOMMAND_SHUTDOWN(2, 3),
    /**
     * PSCOMMAND_REGISTER = 4;
     */
    PSCOMMAND_REGISTER(3, 4),
    /**
     * PSCOMMAND_COMMIT = 5;
     */
    PSCOMMAND_COMMIT(4, 5),
    /**
     * PSCOMMAND_INVALID = 6;
     */
    PSCOMMAND_INVALID(5, 6),
    ;

    /**
     * PSCOMMAND_OK = 1;
     */
    public static final int PSCOMMAND_OK_VALUE = 1;
    /**
     * PSCOMMAND_RESYNC = 2;
     */
    public static final int PSCOMMAND_RESYNC_VALUE = 2;
    /**
     * PSCOMMAND_SHUTDOWN = 3;
     */
    public static final int PSCOMMAND_SHUTDOWN_VALUE = 3;
    /**
     * PSCOMMAND_REGISTER = 4;
     */
    public static final int PSCOMMAND_REGISTER_VALUE = 4;
    /**
     * PSCOMMAND_COMMIT = 5;
     */
    public static final int PSCOMMAND_COMMIT_VALUE = 5;
    /**
     * PSCOMMAND_INVALID = 6;
     */
    public static final int PSCOMMAND_INVALID_VALUE = 6;


    public final int getNumber() { return value; }

    public static PSCommandProto valueOf(int value) {
      switch (value) {
        case 1: return PSCOMMAND_OK;
        case 2: return PSCOMMAND_RESYNC;
        case 3: return PSCOMMAND_SHUTDOWN;
        case 4: return PSCOMMAND_REGISTER;
        case 5: return PSCOMMAND_COMMIT;
        case 6: return PSCOMMAND_INVALID;
        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 PSCommandProto findValueByNumber(int number) {
              return PSCommandProto.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.PSMasterServiceProtos.getDescriptor().getEnumTypes().get(0);
    }

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

    public static PSCommandProto 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 PSCommandProto(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:PSCommandProto)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // repeated .MatrixReportProto matrixReports = 2;
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    java.util.List 
        getMatrixReportsList();
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto getMatrixReports(int index);
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    int getMatrixReportsCount();
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    java.util.List 
        getMatrixReportsOrBuilderList();
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder getMatrixReportsOrBuilder(
        int index);

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

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

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

    public PSReportRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSReportRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                matrixReports_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              matrixReports_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              bitField0_ |= 0x00000002;
              diagnostics_ = input.readBytes();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                metrics_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              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_ & 0x00000002) == 0x00000002)) {
          matrixReports_ = java.util.Collections.unmodifiableList(matrixReports_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          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.PSMasterServiceProtos.internal_static_PSReportRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

    // repeated .MatrixReportProto matrixReports = 2;
    public static final int MATRIXREPORTS_FIELD_NUMBER = 2;
    private java.util.List matrixReports_;
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    public java.util.List getMatrixReportsList() {
      return matrixReports_;
    }
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    public java.util.List 
        getMatrixReportsOrBuilderList() {
      return matrixReports_;
    }
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    public int getMatrixReportsCount() {
      return matrixReports_.size();
    }
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto getMatrixReports(int index) {
      return matrixReports_.get(index);
    }
    /**
     * repeated .MatrixReportProto matrixReports = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder getMatrixReportsOrBuilder(
        int index) {
      return matrixReports_.get(index);
    }

    // optional string diagnostics = 3;
    public static final int DIAGNOSTICS_FIELD_NUMBER = 3;
    private java.lang.Object diagnostics_;
    /**
     * optional string diagnostics = 3;
     */
    public boolean hasDiagnostics() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string diagnostics = 3;
     */
    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 = 3;
     */
    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;
      }
    }

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

    private void initFields() {
      psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      matrixReports_ = java.util.Collections.emptyList();
      diagnostics_ = "";
      metrics_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getMatrixReportsCount(); i++) {
        if (!getMatrixReports(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      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.writeMessage(1, psAttemptId_);
      }
      for (int i = 0; i < matrixReports_.size(); i++) {
        output.writeMessage(2, matrixReports_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(3, getDiagnosticsBytes());
      }
      for (int i = 0; i < metrics_.size(); i++) {
        output.writeMessage(4, 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
          .computeMessageSize(1, psAttemptId_);
      }
      for (int i = 0; i < matrixReports_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, matrixReports_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getDiagnosticsBytes());
      }
      for (int i = 0; i < metrics_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, 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.PSMasterServiceProtos.PSReportRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && getMatrixReportsList()
          .equals(other.getMatrixReportsList());
      result = result && (hasDiagnostics() == other.hasDiagnostics());
      if (hasDiagnostics()) {
        result = result && getDiagnostics()
            .equals(other.getDiagnostics());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (getMatrixReportsCount() > 0) {
        hash = (37 * hash) + MATRIXREPORTS_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixReportsList().hashCode();
      }
      if (hasDiagnostics()) {
        hash = (37 * hash) + DIAGNOSTICS_FIELD_NUMBER;
        hash = (53 * hash) + getDiagnostics().hashCode();
      }
      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.PSMasterServiceProtos.PSReportRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest 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.PSMasterServiceProtos.PSReportRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest 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.PSMasterServiceProtos.PSReportRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest 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.PSMasterServiceProtos.PSReportRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest 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.PSMasterServiceProtos.PSReportRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest 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.PSMasterServiceProtos.PSReportRequest 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 PSReportRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (matrixReportsBuilder_ == null) {
          matrixReports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matrixReportsBuilder_.clear();
        }
        diagnostics_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } 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.PSMasterServiceProtos.internal_static_PSReportRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (matrixReportsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matrixReports_ = java.util.Collections.unmodifiableList(matrixReports_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.matrixReports_ = matrixReports_;
        } else {
          result.matrixReports_ = matrixReportsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.diagnostics_ = diagnostics_;
        if (metricsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            metrics_ = java.util.Collections.unmodifiableList(metrics_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          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.PSMasterServiceProtos.PSReportRequest) {
          return mergeFrom((com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (matrixReportsBuilder_ == null) {
          if (!other.matrixReports_.isEmpty()) {
            if (matrixReports_.isEmpty()) {
              matrixReports_ = other.matrixReports_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatrixReportsIsMutable();
              matrixReports_.addAll(other.matrixReports_);
            }
            onChanged();
          }
        } else {
          if (!other.matrixReports_.isEmpty()) {
            if (matrixReportsBuilder_.isEmpty()) {
              matrixReportsBuilder_.dispose();
              matrixReportsBuilder_ = null;
              matrixReports_ = other.matrixReports_;
              bitField0_ = (bitField0_ & ~0x00000002);
              matrixReportsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMatrixReportsFieldBuilder() : null;
            } else {
              matrixReportsBuilder_.addAllMessages(other.matrixReports_);
            }
          }
        }
        if (other.hasDiagnostics()) {
          bitField0_ |= 0x00000004;
          diagnostics_ = other.diagnostics_;
          onChanged();
        }
        if (metricsBuilder_ == null) {
          if (!other.metrics_.isEmpty()) {
            if (metrics_.isEmpty()) {
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureMetricsIsMutable();
              metrics_.addAll(other.metrics_);
            }
            onChanged();
          }
        } else {
          if (!other.metrics_.isEmpty()) {
            if (metricsBuilder_.isEmpty()) {
              metricsBuilder_.dispose();
              metricsBuilder_ = null;
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00000008);
              metricsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMetricsFieldBuilder() : null;
            } else {
              metricsBuilder_.addAllMessages(other.metrics_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!getPsAttemptId().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getMatrixReportsCount(); i++) {
          if (!getMatrixReports(i).isInitialized()) {
            
            return false;
          }
        }
        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.PSMasterServiceProtos.PSReportRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // repeated .MatrixReportProto matrixReports = 2;
      private java.util.List matrixReports_ =
        java.util.Collections.emptyList();
      private void ensureMatrixReportsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matrixReports_ = new java.util.ArrayList(matrixReports_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder> matrixReportsBuilder_;

      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public java.util.List getMatrixReportsList() {
        if (matrixReportsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matrixReports_);
        } else {
          return matrixReportsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public int getMatrixReportsCount() {
        if (matrixReportsBuilder_ == null) {
          return matrixReports_.size();
        } else {
          return matrixReportsBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto getMatrixReports(int index) {
        if (matrixReportsBuilder_ == null) {
          return matrixReports_.get(index);
        } else {
          return matrixReportsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder setMatrixReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto value) {
        if (matrixReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixReportsIsMutable();
          matrixReports_.set(index, value);
          onChanged();
        } else {
          matrixReportsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder setMatrixReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder builderForValue) {
        if (matrixReportsBuilder_ == null) {
          ensureMatrixReportsIsMutable();
          matrixReports_.set(index, builderForValue.build());
          onChanged();
        } else {
          matrixReportsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder addMatrixReports(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto value) {
        if (matrixReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixReportsIsMutable();
          matrixReports_.add(value);
          onChanged();
        } else {
          matrixReportsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder addMatrixReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto value) {
        if (matrixReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixReportsIsMutable();
          matrixReports_.add(index, value);
          onChanged();
        } else {
          matrixReportsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder addMatrixReports(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder builderForValue) {
        if (matrixReportsBuilder_ == null) {
          ensureMatrixReportsIsMutable();
          matrixReports_.add(builderForValue.build());
          onChanged();
        } else {
          matrixReportsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder addMatrixReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder builderForValue) {
        if (matrixReportsBuilder_ == null) {
          ensureMatrixReportsIsMutable();
          matrixReports_.add(index, builderForValue.build());
          onChanged();
        } else {
          matrixReportsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder addAllMatrixReports(
          java.lang.Iterable values) {
        if (matrixReportsBuilder_ == null) {
          ensureMatrixReportsIsMutable();
          super.addAll(values, matrixReports_);
          onChanged();
        } else {
          matrixReportsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder clearMatrixReports() {
        if (matrixReportsBuilder_ == null) {
          matrixReports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matrixReportsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public Builder removeMatrixReports(int index) {
        if (matrixReportsBuilder_ == null) {
          ensureMatrixReportsIsMutable();
          matrixReports_.remove(index);
          onChanged();
        } else {
          matrixReportsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder getMatrixReportsBuilder(
          int index) {
        return getMatrixReportsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder getMatrixReportsOrBuilder(
          int index) {
        if (matrixReportsBuilder_ == null) {
          return matrixReports_.get(index);  } else {
          return matrixReportsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public java.util.List 
           getMatrixReportsOrBuilderList() {
        if (matrixReportsBuilder_ != null) {
          return matrixReportsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matrixReports_);
        }
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder addMatrixReportsBuilder() {
        return getMatrixReportsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder addMatrixReportsBuilder(
          int index) {
        return getMatrixReportsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixReportProto matrixReports = 2;
       */
      public java.util.List 
           getMatrixReportsBuilderList() {
        return getMatrixReportsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder> 
          getMatrixReportsFieldBuilder() {
        if (matrixReportsBuilder_ == null) {
          matrixReportsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder>(
                  matrixReports_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          matrixReports_ = null;
        }
        return matrixReportsBuilder_;
      }

      // optional string diagnostics = 3;
      private java.lang.Object diagnostics_ = "";
      /**
       * optional string diagnostics = 3;
       */
      public boolean hasDiagnostics() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string diagnostics = 3;
       */
      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 = 3;
       */
      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 = 3;
       */
      public Builder setDiagnostics(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        diagnostics_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string diagnostics = 3;
       */
      public Builder clearDiagnostics() {
        bitField0_ = (bitField0_ & ~0x00000004);
        diagnostics_ = getDefaultInstance().getDiagnostics();
        onChanged();
        return this;
      }
      /**
       * optional string diagnostics = 3;
       */
      public Builder setDiagnosticsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        diagnostics_ = value;
        onChanged();
        return this;
      }

      // repeated .Pair metrics = 4;
      private java.util.List metrics_ =
        java.util.Collections.emptyList();
      private void ensureMetricsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          metrics_ = new java.util.ArrayList(metrics_);
          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> metricsBuilder_;

      /**
       * repeated .Pair metrics = 4;
       */
      public java.util.List getMetricsList() {
        if (metricsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metrics_);
        } else {
          return metricsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .Pair metrics = 4;
       */
      public int getMetricsCount() {
        if (metricsBuilder_ == null) {
          return metrics_.size();
        } else {
          return metricsBuilder_.getCount();
        }
      }
      /**
       * repeated .Pair metrics = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      public Builder clearMetrics() {
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 4;
       */
      public Builder removeMetrics(int index) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.remove(index);
          onChanged();
        } else {
          metricsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .Pair metrics = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder getMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .Pair metrics = 4;
       */
      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 = 4;
       */
      public java.util.List 
           getMetricsOrBuilderList() {
        if (metricsBuilder_ != null) {
          return metricsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metrics_);
        }
      }
      /**
       * repeated .Pair metrics = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.Pair.Builder addMetricsBuilder() {
        return getMetricsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.Pair.getDefaultInstance());
      }
      /**
       * repeated .Pair metrics = 4;
       */
      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 = 4;
       */
      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_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          metrics_ = null;
        }
        return metricsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSReportRequest)
    }

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

    // @@protoc_insertion_point(class_scope:PSReportRequest)
  }

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

    // required int32 matrixId = 1;
    /**
     * required int32 matrixId = 1;
     */
    boolean hasMatrixId();
    /**
     * required int32 matrixId = 1;
     */
    int getMatrixId();

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

    // repeated .PartReportProto partReports = 3;
    /**
     * repeated .PartReportProto partReports = 3;
     */
    java.util.List 
        getPartReportsList();
    /**
     * repeated .PartReportProto partReports = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto getPartReports(int index);
    /**
     * repeated .PartReportProto partReports = 3;
     */
    int getPartReportsCount();
    /**
     * repeated .PartReportProto partReports = 3;
     */
    java.util.List 
        getPartReportsOrBuilderList();
    /**
     * repeated .PartReportProto partReports = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder getPartReportsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code MatrixReportProto}
   */
  public static final class MatrixReportProto extends
      com.google.protobuf.GeneratedMessage
      implements MatrixReportProtoOrBuilder {
    // Use MatrixReportProto.newBuilder() to construct.
    private MatrixReportProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MatrixReportProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MatrixReportProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MatrixReportProto(
        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;
              matrixId_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              matrixName_ = input.readBytes();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                partReports_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              partReports_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.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)) {
          partReports_ = java.util.Collections.unmodifiableList(partReports_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_MatrixReportProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_MatrixReportProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 matrixId = 1;
    public static final int MATRIXID_FIELD_NUMBER = 1;
    private int matrixId_;
    /**
     * required int32 matrixId = 1;
     */
    public boolean hasMatrixId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 matrixId = 1;
     */
    public int getMatrixId() {
      return matrixId_;
    }

    // required string matrixName = 2;
    public static final int MATRIXNAME_FIELD_NUMBER = 2;
    private java.lang.Object matrixName_;
    /**
     * required string matrixName = 2;
     */
    public boolean hasMatrixName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string matrixName = 2;
     */
    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 = 2;
     */
    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;
      }
    }

    // repeated .PartReportProto partReports = 3;
    public static final int PARTREPORTS_FIELD_NUMBER = 3;
    private java.util.List partReports_;
    /**
     * repeated .PartReportProto partReports = 3;
     */
    public java.util.List getPartReportsList() {
      return partReports_;
    }
    /**
     * repeated .PartReportProto partReports = 3;
     */
    public java.util.List 
        getPartReportsOrBuilderList() {
      return partReports_;
    }
    /**
     * repeated .PartReportProto partReports = 3;
     */
    public int getPartReportsCount() {
      return partReports_.size();
    }
    /**
     * repeated .PartReportProto partReports = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto getPartReports(int index) {
      return partReports_.get(index);
    }
    /**
     * repeated .PartReportProto partReports = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder getPartReportsOrBuilder(
        int index) {
      return partReports_.get(index);
    }

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

      if (!hasMatrixId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMatrixName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPartReportsCount(); i++) {
        if (!getPartReports(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, matrixId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getMatrixNameBytes());
      }
      for (int i = 0; i < partReports_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, partReports_.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.PSMasterServiceProtos.MatrixReportProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto) obj;

      boolean result = true;
      result = result && (hasMatrixId() == other.hasMatrixId());
      if (hasMatrixId()) {
        result = result && (getMatrixId()
            == other.getMatrixId());
      }
      result = result && (hasMatrixName() == other.hasMatrixName());
      if (hasMatrixName()) {
        result = result && getMatrixName()
            .equals(other.getMatrixName());
      }
      result = result && getPartReportsList()
          .equals(other.getPartReportsList());
      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 (hasMatrixId()) {
        hash = (37 * hash) + MATRIXID_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixId();
      }
      if (hasMatrixName()) {
        hash = (37 * hash) + MATRIXNAME_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixName().hashCode();
      }
      if (getPartReportsCount() > 0) {
        hash = (37 * hash) + PARTREPORTS_FIELD_NUMBER;
        hash = (53 * hash) + getPartReportsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto 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.PSMasterServiceProtos.MatrixReportProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto 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.PSMasterServiceProtos.MatrixReportProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto 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.PSMasterServiceProtos.MatrixReportProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto 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.PSMasterServiceProtos.MatrixReportProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto 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.PSMasterServiceProtos.MatrixReportProto 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 MatrixReportProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_MatrixReportProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_MatrixReportProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        matrixId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (partReportsBuilder_ == null) {
          partReports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          partReportsBuilder_.clear();
        }
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixId_ = matrixId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.matrixName_ = matrixName_;
        if (partReportsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            partReports_ = java.util.Collections.unmodifiableList(partReports_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.partReports_ = partReports_;
        } else {
          result.partReports_ = partReportsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto.getDefaultInstance()) return this;
        if (other.hasMatrixId()) {
          setMatrixId(other.getMatrixId());
        }
        if (other.hasMatrixName()) {
          bitField0_ |= 0x00000002;
          matrixName_ = other.matrixName_;
          onChanged();
        }
        if (partReportsBuilder_ == null) {
          if (!other.partReports_.isEmpty()) {
            if (partReports_.isEmpty()) {
              partReports_ = other.partReports_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensurePartReportsIsMutable();
              partReports_.addAll(other.partReports_);
            }
            onChanged();
          }
        } else {
          if (!other.partReports_.isEmpty()) {
            if (partReportsBuilder_.isEmpty()) {
              partReportsBuilder_.dispose();
              partReportsBuilder_ = null;
              partReports_ = other.partReports_;
              bitField0_ = (bitField0_ & ~0x00000004);
              partReportsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPartReportsFieldBuilder() : null;
            } else {
              partReportsBuilder_.addAllMessages(other.partReports_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMatrixId()) {
          
          return false;
        }
        if (!hasMatrixName()) {
          
          return false;
        }
        for (int i = 0; i < getPartReportsCount(); i++) {
          if (!getPartReports(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.PSMasterServiceProtos.MatrixReportProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.MatrixReportProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 matrixId = 1;
      private int matrixId_ ;
      /**
       * required int32 matrixId = 1;
       */
      public boolean hasMatrixId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 matrixId = 1;
       */
      public int getMatrixId() {
        return matrixId_;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder setMatrixId(int value) {
        bitField0_ |= 0x00000001;
        matrixId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder clearMatrixId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixId_ = 0;
        onChanged();
        return this;
      }

      // required string matrixName = 2;
      private java.lang.Object matrixName_ = "";
      /**
       * required string matrixName = 2;
       */
      public boolean hasMatrixName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string matrixName = 2;
       */
      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 = 2;
       */
      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 = 2;
       */
      public Builder setMatrixName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        matrixName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 2;
       */
      public Builder clearMatrixName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        matrixName_ = getDefaultInstance().getMatrixName();
        onChanged();
        return this;
      }
      /**
       * required string matrixName = 2;
       */
      public Builder setMatrixNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        matrixName_ = value;
        onChanged();
        return this;
      }

      // repeated .PartReportProto partReports = 3;
      private java.util.List partReports_ =
        java.util.Collections.emptyList();
      private void ensurePartReportsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          partReports_ = new java.util.ArrayList(partReports_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder> partReportsBuilder_;

      /**
       * repeated .PartReportProto partReports = 3;
       */
      public java.util.List getPartReportsList() {
        if (partReportsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(partReports_);
        } else {
          return partReportsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public int getPartReportsCount() {
        if (partReportsBuilder_ == null) {
          return partReports_.size();
        } else {
          return partReportsBuilder_.getCount();
        }
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto getPartReports(int index) {
        if (partReportsBuilder_ == null) {
          return partReports_.get(index);
        } else {
          return partReportsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder setPartReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto value) {
        if (partReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePartReportsIsMutable();
          partReports_.set(index, value);
          onChanged();
        } else {
          partReportsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder setPartReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder builderForValue) {
        if (partReportsBuilder_ == null) {
          ensurePartReportsIsMutable();
          partReports_.set(index, builderForValue.build());
          onChanged();
        } else {
          partReportsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder addPartReports(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto value) {
        if (partReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePartReportsIsMutable();
          partReports_.add(value);
          onChanged();
        } else {
          partReportsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder addPartReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto value) {
        if (partReportsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePartReportsIsMutable();
          partReports_.add(index, value);
          onChanged();
        } else {
          partReportsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder addPartReports(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder builderForValue) {
        if (partReportsBuilder_ == null) {
          ensurePartReportsIsMutable();
          partReports_.add(builderForValue.build());
          onChanged();
        } else {
          partReportsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder addPartReports(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder builderForValue) {
        if (partReportsBuilder_ == null) {
          ensurePartReportsIsMutable();
          partReports_.add(index, builderForValue.build());
          onChanged();
        } else {
          partReportsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder addAllPartReports(
          java.lang.Iterable values) {
        if (partReportsBuilder_ == null) {
          ensurePartReportsIsMutable();
          super.addAll(values, partReports_);
          onChanged();
        } else {
          partReportsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder clearPartReports() {
        if (partReportsBuilder_ == null) {
          partReports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          partReportsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public Builder removePartReports(int index) {
        if (partReportsBuilder_ == null) {
          ensurePartReportsIsMutable();
          partReports_.remove(index);
          onChanged();
        } else {
          partReportsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder getPartReportsBuilder(
          int index) {
        return getPartReportsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder getPartReportsOrBuilder(
          int index) {
        if (partReportsBuilder_ == null) {
          return partReports_.get(index);  } else {
          return partReportsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public java.util.List 
           getPartReportsOrBuilderList() {
        if (partReportsBuilder_ != null) {
          return partReportsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(partReports_);
        }
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder addPartReportsBuilder() {
        return getPartReportsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.getDefaultInstance());
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder addPartReportsBuilder(
          int index) {
        return getPartReportsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.getDefaultInstance());
      }
      /**
       * repeated .PartReportProto partReports = 3;
       */
      public java.util.List 
           getPartReportsBuilderList() {
        return getPartReportsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder> 
          getPartReportsFieldBuilder() {
        if (partReportsBuilder_ == null) {
          partReportsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder>(
                  partReports_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          partReports_ = null;
        }
        return partReportsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:MatrixReportProto)
    }

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

    // @@protoc_insertion_point(class_scope:MatrixReportProto)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();

    // required int32 subRequestId = 2;
    /**
     * required int32 subRequestId = 2;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 2;
     */
    int getSubRequestId();

    // required int32 saveState = 3;
    /**
     * required int32 saveState = 3;
     */
    boolean hasSaveState();
    /**
     * required int32 saveState = 3;
     */
    int getSaveState();

    // optional string failedLog = 4;
    /**
     * optional string failedLog = 4;
     */
    boolean hasFailedLog();
    /**
     * optional string failedLog = 4;
     */
    java.lang.String getFailedLog();
    /**
     * optional string failedLog = 4;
     */
    com.google.protobuf.ByteString
        getFailedLogBytes();
  }
  /**
   * Protobuf type {@code PSMatricesSaveResultProto}
   */
  public static final class PSMatricesSaveResultProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatricesSaveResultProtoOrBuilder {
    // Use PSMatricesSaveResultProto.newBuilder() to construct.
    private PSMatricesSaveResultProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatricesSaveResultProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatricesSaveResultProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatricesSaveResultProto(
        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;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              subRequestId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              saveState_ = input.readInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              failedLog_ = 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.PSMasterServiceProtos.internal_static_PSMatricesSaveResultProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveResultProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSMatricesSaveResultProto parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSMatricesSaveResultProto(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_;
    }

    // required int32 subRequestId = 2;
    public static final int SUBREQUESTID_FIELD_NUMBER = 2;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 2;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 subRequestId = 2;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

    // required int32 saveState = 3;
    public static final int SAVESTATE_FIELD_NUMBER = 3;
    private int saveState_;
    /**
     * required int32 saveState = 3;
     */
    public boolean hasSaveState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 saveState = 3;
     */
    public int getSaveState() {
      return saveState_;
    }

    // optional string failedLog = 4;
    public static final int FAILEDLOG_FIELD_NUMBER = 4;
    private java.lang.Object failedLog_;
    /**
     * optional string failedLog = 4;
     */
    public boolean hasFailedLog() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string failedLog = 4;
     */
    public java.lang.String getFailedLog() {
      java.lang.Object ref = failedLog_;
      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()) {
          failedLog_ = s;
        }
        return s;
      }
    }
    /**
     * optional string failedLog = 4;
     */
    public com.google.protobuf.ByteString
        getFailedLogBytes() {
      java.lang.Object ref = failedLog_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        failedLog_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSaveState()) {
        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_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, subRequestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, saveState_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getFailedLogBytes());
      }
      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_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, subRequestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, saveState_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getFailedLogBytes());
      }
      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.PSMasterServiceProtos.PSMatricesSaveResultProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      result = result && (hasSaveState() == other.hasSaveState());
      if (hasSaveState()) {
        result = result && (getSaveState()
            == other.getSaveState());
      }
      result = result && (hasFailedLog() == other.hasFailedLog());
      if (hasFailedLog()) {
        result = result && getFailedLog()
            .equals(other.getFailedLog());
      }
      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();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      if (hasSaveState()) {
        hash = (37 * hash) + SAVESTATE_FIELD_NUMBER;
        hash = (53 * hash) + getSaveState();
      }
      if (hasFailedLog()) {
        hash = (37 * hash) + FAILEDLOG_FIELD_NUMBER;
        hash = (53 * hash) + getFailedLog().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto 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.PSMasterServiceProtos.PSMatricesSaveResultProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto 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.PSMasterServiceProtos.PSMatricesSaveResultProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto 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.PSMasterServiceProtos.PSMatricesSaveResultProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto 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.PSMasterServiceProtos.PSMatricesSaveResultProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto 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.PSMasterServiceProtos.PSMatricesSaveResultProto 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 PSMatricesSaveResultProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveResultProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveResultProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.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);
        subRequestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        saveState_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        failedLog_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.subRequestId_ = subRequestId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.saveState_ = saveState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.failedLog_ = failedLog_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        if (other.hasSaveState()) {
          setSaveState(other.getSaveState());
        }
        if (other.hasFailedLog()) {
          bitField0_ |= 0x00000008;
          failedLog_ = other.failedLog_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        if (!hasSaveState()) {
          
          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.PSMasterServiceProtos.PSMatricesSaveResultProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto) 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;
      }

      // required int32 subRequestId = 2;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 2;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 subRequestId = 2;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000002;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // required int32 saveState = 3;
      private int saveState_ ;
      /**
       * required int32 saveState = 3;
       */
      public boolean hasSaveState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 saveState = 3;
       */
      public int getSaveState() {
        return saveState_;
      }
      /**
       * required int32 saveState = 3;
       */
      public Builder setSaveState(int value) {
        bitField0_ |= 0x00000004;
        saveState_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 saveState = 3;
       */
      public Builder clearSaveState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        saveState_ = 0;
        onChanged();
        return this;
      }

      // optional string failedLog = 4;
      private java.lang.Object failedLog_ = "";
      /**
       * optional string failedLog = 4;
       */
      public boolean hasFailedLog() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string failedLog = 4;
       */
      public java.lang.String getFailedLog() {
        java.lang.Object ref = failedLog_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          failedLog_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string failedLog = 4;
       */
      public com.google.protobuf.ByteString
          getFailedLogBytes() {
        java.lang.Object ref = failedLog_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          failedLog_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder setFailedLog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failedLog_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder clearFailedLog() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failedLog_ = getDefaultInstance().getFailedLog();
        onChanged();
        return this;
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder setFailedLogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failedLog_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSMatricesSaveResultProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatricesSaveResultProto)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();

    // required int32 subRequestId = 2;
    /**
     * required int32 subRequestId = 2;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 2;
     */
    int getSubRequestId();

    // required int32 loadState = 3;
    /**
     * required int32 loadState = 3;
     */
    boolean hasLoadState();
    /**
     * required int32 loadState = 3;
     */
    int getLoadState();

    // optional string failedLog = 4;
    /**
     * optional string failedLog = 4;
     */
    boolean hasFailedLog();
    /**
     * optional string failedLog = 4;
     */
    java.lang.String getFailedLog();
    /**
     * optional string failedLog = 4;
     */
    com.google.protobuf.ByteString
        getFailedLogBytes();
  }
  /**
   * Protobuf type {@code PSMatricesLoadResultProto}
   */
  public static final class PSMatricesLoadResultProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatricesLoadResultProtoOrBuilder {
    // Use PSMatricesLoadResultProto.newBuilder() to construct.
    private PSMatricesLoadResultProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatricesLoadResultProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatricesLoadResultProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatricesLoadResultProto(
        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;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              subRequestId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              loadState_ = input.readInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              failedLog_ = 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.PSMasterServiceProtos.internal_static_PSMatricesLoadResultProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadResultProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSMatricesLoadResultProto parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSMatricesLoadResultProto(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_;
    }

    // required int32 subRequestId = 2;
    public static final int SUBREQUESTID_FIELD_NUMBER = 2;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 2;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 subRequestId = 2;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

    // required int32 loadState = 3;
    public static final int LOADSTATE_FIELD_NUMBER = 3;
    private int loadState_;
    /**
     * required int32 loadState = 3;
     */
    public boolean hasLoadState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 loadState = 3;
     */
    public int getLoadState() {
      return loadState_;
    }

    // optional string failedLog = 4;
    public static final int FAILEDLOG_FIELD_NUMBER = 4;
    private java.lang.Object failedLog_;
    /**
     * optional string failedLog = 4;
     */
    public boolean hasFailedLog() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string failedLog = 4;
     */
    public java.lang.String getFailedLog() {
      java.lang.Object ref = failedLog_;
      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()) {
          failedLog_ = s;
        }
        return s;
      }
    }
    /**
     * optional string failedLog = 4;
     */
    public com.google.protobuf.ByteString
        getFailedLogBytes() {
      java.lang.Object ref = failedLog_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        failedLog_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLoadState()) {
        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_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, subRequestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, loadState_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getFailedLogBytes());
      }
      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_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, subRequestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, loadState_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getFailedLogBytes());
      }
      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.PSMasterServiceProtos.PSMatricesLoadResultProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      result = result && (hasLoadState() == other.hasLoadState());
      if (hasLoadState()) {
        result = result && (getLoadState()
            == other.getLoadState());
      }
      result = result && (hasFailedLog() == other.hasFailedLog());
      if (hasFailedLog()) {
        result = result && getFailedLog()
            .equals(other.getFailedLog());
      }
      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();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      if (hasLoadState()) {
        hash = (37 * hash) + LOADSTATE_FIELD_NUMBER;
        hash = (53 * hash) + getLoadState();
      }
      if (hasFailedLog()) {
        hash = (37 * hash) + FAILEDLOG_FIELD_NUMBER;
        hash = (53 * hash) + getFailedLog().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto 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.PSMasterServiceProtos.PSMatricesLoadResultProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto 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.PSMasterServiceProtos.PSMatricesLoadResultProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto 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.PSMasterServiceProtos.PSMatricesLoadResultProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto 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.PSMasterServiceProtos.PSMatricesLoadResultProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto 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.PSMasterServiceProtos.PSMatricesLoadResultProto 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 PSMatricesLoadResultProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadResultProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadResultProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.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);
        subRequestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        loadState_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        failedLog_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.subRequestId_ = subRequestId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.loadState_ = loadState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.failedLog_ = failedLog_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        if (other.hasLoadState()) {
          setLoadState(other.getLoadState());
        }
        if (other.hasFailedLog()) {
          bitField0_ |= 0x00000008;
          failedLog_ = other.failedLog_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        if (!hasLoadState()) {
          
          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.PSMasterServiceProtos.PSMatricesLoadResultProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto) 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;
      }

      // required int32 subRequestId = 2;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 2;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 subRequestId = 2;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000002;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // required int32 loadState = 3;
      private int loadState_ ;
      /**
       * required int32 loadState = 3;
       */
      public boolean hasLoadState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 loadState = 3;
       */
      public int getLoadState() {
        return loadState_;
      }
      /**
       * required int32 loadState = 3;
       */
      public Builder setLoadState(int value) {
        bitField0_ |= 0x00000004;
        loadState_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 loadState = 3;
       */
      public Builder clearLoadState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        loadState_ = 0;
        onChanged();
        return this;
      }

      // optional string failedLog = 4;
      private java.lang.Object failedLog_ = "";
      /**
       * optional string failedLog = 4;
       */
      public boolean hasFailedLog() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string failedLog = 4;
       */
      public java.lang.String getFailedLog() {
        java.lang.Object ref = failedLog_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          failedLog_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string failedLog = 4;
       */
      public com.google.protobuf.ByteString
          getFailedLogBytes() {
        java.lang.Object ref = failedLog_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          failedLog_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder setFailedLog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failedLog_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder clearFailedLog() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failedLog_ = getDefaultInstance().getFailedLog();
        onChanged();
        return this;
      }
      /**
       * optional string failedLog = 4;
       */
      public Builder setFailedLogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failedLog_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSMatricesLoadResultProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatricesLoadResultProto)
  }

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

    // required int32 partId = 1;
    /**
     * required int32 partId = 1;
     */
    boolean hasPartId();
    /**
     * required int32 partId = 1;
     */
    int getPartId();

    // required int32 status = 2;
    /**
     * required int32 status = 2;
     */
    boolean hasStatus();
    /**
     * required int32 status = 2;
     */
    int getStatus();
  }
  /**
   * Protobuf type {@code PartReportProto}
   */
  public static final class PartReportProto extends
      com.google.protobuf.GeneratedMessage
      implements PartReportProtoOrBuilder {
    // Use PartReportProto.newBuilder() to construct.
    private PartReportProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PartReportProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PartReportProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PartReportProto(
        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;
              partId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              status_ = 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.PSMasterServiceProtos.internal_static_PartReportProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PartReportProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 partId = 1;
    public static final int PARTID_FIELD_NUMBER = 1;
    private int partId_;
    /**
     * required int32 partId = 1;
     */
    public boolean hasPartId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 partId = 1;
     */
    public int getPartId() {
      return partId_;
    }

    // required int32 status = 2;
    public static final int STATUS_FIELD_NUMBER = 2;
    private int status_;
    /**
     * required int32 status = 2;
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 status = 2;
     */
    public int getStatus() {
      return status_;
    }

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

      if (!hasPartId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      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, partId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, status_);
      }
      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, partId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, status_);
      }
      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.PSMasterServiceProtos.PartReportProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto) obj;

      boolean result = true;
      result = result && (hasPartId() == other.hasPartId());
      if (hasPartId()) {
        result = result && (getPartId()
            == other.getPartId());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && (getStatus()
            == other.getStatus());
      }
      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 (hasPartId()) {
        hash = (37 * hash) + PARTID_FIELD_NUMBER;
        hash = (53 * hash) + getPartId();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto 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.PSMasterServiceProtos.PartReportProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto 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.PSMasterServiceProtos.PartReportProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto 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.PSMasterServiceProtos.PartReportProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto 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.PSMasterServiceProtos.PartReportProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto 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.PSMasterServiceProtos.PartReportProto 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 PartReportProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PartReportProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PartReportProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.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();
        partId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = 0;
        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.PSMasterServiceProtos.internal_static_PartReportProto_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.partId_ = partId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto.getDefaultInstance()) return this;
        if (other.hasPartId()) {
          setPartId(other.getPartId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPartId()) {
          
          return false;
        }
        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.PSMasterServiceProtos.PartReportProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PartReportProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 partId = 1;
      private int partId_ ;
      /**
       * required int32 partId = 1;
       */
      public boolean hasPartId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 partId = 1;
       */
      public int getPartId() {
        return partId_;
      }
      /**
       * required int32 partId = 1;
       */
      public Builder setPartId(int value) {
        bitField0_ |= 0x00000001;
        partId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 partId = 1;
       */
      public Builder clearPartId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partId_ = 0;
        onChanged();
        return this;
      }

      // required int32 status = 2;
      private int status_ ;
      /**
       * required int32 status = 2;
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 status = 2;
       */
      public int getStatus() {
        return status_;
      }
      /**
       * required int32 status = 2;
       */
      public Builder setStatus(int value) {
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 status = 2;
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PartReportProto)
    }

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

    // @@protoc_insertion_point(class_scope:PartReportProto)
  }

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

    // required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
    /**
     * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
     */
    boolean hasPsCommand();
    /**
     * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand();

    // repeated .MatrixMetaProto needCreateMatrices = 2;
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    java.util.List 
        getNeedCreateMatricesList();
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getNeedCreateMatrices(int index);
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    int getNeedCreateMatricesCount();
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    java.util.List 
        getNeedCreateMatricesOrBuilderList();
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getNeedCreateMatricesOrBuilder(
        int index);

    // repeated int32 needReleaseMatrixIds = 3;
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    java.util.List getNeedReleaseMatrixIdsList();
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    int getNeedReleaseMatrixIdsCount();
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    int getNeedReleaseMatrixIds(int index);

    // optional int32 savingRequest = 4;
    /**
     * optional int32 savingRequest = 4;
     */
    boolean hasSavingRequest();
    /**
     * optional int32 savingRequest = 4;
     */
    int getSavingRequest();

    // optional int32 loadingRequest = 5;
    /**
     * optional int32 loadingRequest = 5;
     */
    boolean hasLoadingRequest();
    /**
     * optional int32 loadingRequest = 5;
     */
    int getLoadingRequest();

    // optional .PSMatricesSaveContextProto needSaveMatrices = 6;
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    boolean hasNeedSaveMatrices();
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto getNeedSaveMatrices();
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder getNeedSaveMatricesOrBuilder();

    // optional .PSMatricesLoadContextProto needLoadMatrices = 7;
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    boolean hasNeedLoadMatrices();
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto getNeedLoadMatrices();
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder getNeedLoadMatricesOrBuilder();

    // repeated .RecoverPartKeyProto needRecoverParts = 8;
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    java.util.List 
        getNeedRecoverPartsList();
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto getNeedRecoverParts(int index);
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    int getNeedRecoverPartsCount();
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    java.util.List 
        getNeedRecoverPartsOrBuilderList();
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder getNeedRecoverPartsOrBuilder(
        int index);

    // optional .ExecuteUnitDesc executeUnitDesc = 9;
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    boolean hasExecuteUnitDesc();
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc();
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder();
  }
  /**
   * Protobuf type {@code PSReportResponse}
   */
  public static final class PSReportResponse extends
      com.google.protobuf.GeneratedMessage
      implements PSReportResponseOrBuilder {
    // Use PSReportResponse.newBuilder() to construct.
    private PSReportResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSReportResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSReportResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSReportResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto value = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                psCommand_ = value;
              }
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                needCreateMatrices_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              needCreateMatrices_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                needReleaseMatrixIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              needReleaseMatrixIds_.add(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                needReleaseMatrixIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                needReleaseMatrixIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 32: {
              bitField0_ |= 0x00000002;
              savingRequest_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000004;
              loadingRequest_ = input.readInt32();
              break;
            }
            case 50: {
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = needSaveMatrices_.toBuilder();
              }
              needSaveMatrices_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(needSaveMatrices_);
                needSaveMatrices_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 58: {
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = needLoadMatrices_.toBuilder();
              }
              needLoadMatrices_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(needLoadMatrices_);
                needLoadMatrices_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                needRecoverParts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              needRecoverParts_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.PARSER, extensionRegistry));
              break;
            }
            case 74: {
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = executeUnitDesc_.toBuilder();
              }
              executeUnitDesc_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(executeUnitDesc_);
                executeUnitDesc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              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)) {
          needCreateMatrices_ = java.util.Collections.unmodifiableList(needCreateMatrices_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          needReleaseMatrixIds_ = java.util.Collections.unmodifiableList(needReleaseMatrixIds_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          needRecoverParts_ = java.util.Collections.unmodifiableList(needRecoverParts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
    public static final int PSCOMMAND_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto psCommand_;
    /**
     * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
     */
    public boolean hasPsCommand() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand() {
      return psCommand_;
    }

    // repeated .MatrixMetaProto needCreateMatrices = 2;
    public static final int NEEDCREATEMATRICES_FIELD_NUMBER = 2;
    private java.util.List needCreateMatrices_;
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    public java.util.List getNeedCreateMatricesList() {
      return needCreateMatrices_;
    }
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    public java.util.List 
        getNeedCreateMatricesOrBuilderList() {
      return needCreateMatrices_;
    }
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    public int getNeedCreateMatricesCount() {
      return needCreateMatrices_.size();
    }
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getNeedCreateMatrices(int index) {
      return needCreateMatrices_.get(index);
    }
    /**
     * repeated .MatrixMetaProto needCreateMatrices = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getNeedCreateMatricesOrBuilder(
        int index) {
      return needCreateMatrices_.get(index);
    }

    // repeated int32 needReleaseMatrixIds = 3;
    public static final int NEEDRELEASEMATRIXIDS_FIELD_NUMBER = 3;
    private java.util.List needReleaseMatrixIds_;
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    public java.util.List
        getNeedReleaseMatrixIdsList() {
      return needReleaseMatrixIds_;
    }
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    public int getNeedReleaseMatrixIdsCount() {
      return needReleaseMatrixIds_.size();
    }
    /**
     * repeated int32 needReleaseMatrixIds = 3;
     */
    public int getNeedReleaseMatrixIds(int index) {
      return needReleaseMatrixIds_.get(index);
    }

    // optional int32 savingRequest = 4;
    public static final int SAVINGREQUEST_FIELD_NUMBER = 4;
    private int savingRequest_;
    /**
     * optional int32 savingRequest = 4;
     */
    public boolean hasSavingRequest() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 savingRequest = 4;
     */
    public int getSavingRequest() {
      return savingRequest_;
    }

    // optional int32 loadingRequest = 5;
    public static final int LOADINGREQUEST_FIELD_NUMBER = 5;
    private int loadingRequest_;
    /**
     * optional int32 loadingRequest = 5;
     */
    public boolean hasLoadingRequest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 loadingRequest = 5;
     */
    public int getLoadingRequest() {
      return loadingRequest_;
    }

    // optional .PSMatricesSaveContextProto needSaveMatrices = 6;
    public static final int NEEDSAVEMATRICES_FIELD_NUMBER = 6;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto needSaveMatrices_;
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    public boolean hasNeedSaveMatrices() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto getNeedSaveMatrices() {
      return needSaveMatrices_;
    }
    /**
     * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder getNeedSaveMatricesOrBuilder() {
      return needSaveMatrices_;
    }

    // optional .PSMatricesLoadContextProto needLoadMatrices = 7;
    public static final int NEEDLOADMATRICES_FIELD_NUMBER = 7;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto needLoadMatrices_;
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    public boolean hasNeedLoadMatrices() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto getNeedLoadMatrices() {
      return needLoadMatrices_;
    }
    /**
     * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder getNeedLoadMatricesOrBuilder() {
      return needLoadMatrices_;
    }

    // repeated .RecoverPartKeyProto needRecoverParts = 8;
    public static final int NEEDRECOVERPARTS_FIELD_NUMBER = 8;
    private java.util.List needRecoverParts_;
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    public java.util.List getNeedRecoverPartsList() {
      return needRecoverParts_;
    }
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    public java.util.List 
        getNeedRecoverPartsOrBuilderList() {
      return needRecoverParts_;
    }
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    public int getNeedRecoverPartsCount() {
      return needRecoverParts_.size();
    }
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto getNeedRecoverParts(int index) {
      return needRecoverParts_.get(index);
    }
    /**
     * repeated .RecoverPartKeyProto needRecoverParts = 8;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder getNeedRecoverPartsOrBuilder(
        int index) {
      return needRecoverParts_.get(index);
    }

    // optional .ExecuteUnitDesc executeUnitDesc = 9;
    public static final int EXECUTEUNITDESC_FIELD_NUMBER = 9;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc executeUnitDesc_;
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    public boolean hasExecuteUnitDesc() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc() {
      return executeUnitDesc_;
    }
    /**
     * optional .ExecuteUnitDesc executeUnitDesc = 9;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder() {
      return executeUnitDesc_;
    }

    private void initFields() {
      psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
      needCreateMatrices_ = java.util.Collections.emptyList();
      needReleaseMatrixIds_ = java.util.Collections.emptyList();
      savingRequest_ = 0;
      loadingRequest_ = 0;
      needSaveMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance();
      needLoadMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance();
      needRecoverParts_ = java.util.Collections.emptyList();
      executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPsCommand()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getNeedCreateMatricesCount(); i++) {
        if (!getNeedCreateMatrices(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasNeedSaveMatrices()) {
        if (!getNeedSaveMatrices().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasNeedLoadMatrices()) {
        if (!getNeedLoadMatrices().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getNeedRecoverPartsCount(); i++) {
        if (!getNeedRecoverParts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasExecuteUnitDesc()) {
        if (!getExecuteUnitDesc().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, psCommand_.getNumber());
      }
      for (int i = 0; i < needCreateMatrices_.size(); i++) {
        output.writeMessage(2, needCreateMatrices_.get(i));
      }
      for (int i = 0; i < needReleaseMatrixIds_.size(); i++) {
        output.writeInt32(3, needReleaseMatrixIds_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(4, savingRequest_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(5, loadingRequest_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(6, needSaveMatrices_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(7, needLoadMatrices_);
      }
      for (int i = 0; i < needRecoverParts_.size(); i++) {
        output.writeMessage(8, needRecoverParts_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(9, executeUnitDesc_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, psCommand_.getNumber());
      }
      for (int i = 0; i < needCreateMatrices_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, needCreateMatrices_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < needReleaseMatrixIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(needReleaseMatrixIds_.get(i));
        }
        size += dataSize;
        size += 1 * getNeedReleaseMatrixIdsList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, savingRequest_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, loadingRequest_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, needSaveMatrices_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, needLoadMatrices_);
      }
      for (int i = 0; i < needRecoverParts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, needRecoverParts_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, executeUnitDesc_);
      }
      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.PSMasterServiceProtos.PSReportResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse) obj;

      boolean result = true;
      result = result && (hasPsCommand() == other.hasPsCommand());
      if (hasPsCommand()) {
        result = result &&
            (getPsCommand() == other.getPsCommand());
      }
      result = result && getNeedCreateMatricesList()
          .equals(other.getNeedCreateMatricesList());
      result = result && getNeedReleaseMatrixIdsList()
          .equals(other.getNeedReleaseMatrixIdsList());
      result = result && (hasSavingRequest() == other.hasSavingRequest());
      if (hasSavingRequest()) {
        result = result && (getSavingRequest()
            == other.getSavingRequest());
      }
      result = result && (hasLoadingRequest() == other.hasLoadingRequest());
      if (hasLoadingRequest()) {
        result = result && (getLoadingRequest()
            == other.getLoadingRequest());
      }
      result = result && (hasNeedSaveMatrices() == other.hasNeedSaveMatrices());
      if (hasNeedSaveMatrices()) {
        result = result && getNeedSaveMatrices()
            .equals(other.getNeedSaveMatrices());
      }
      result = result && (hasNeedLoadMatrices() == other.hasNeedLoadMatrices());
      if (hasNeedLoadMatrices()) {
        result = result && getNeedLoadMatrices()
            .equals(other.getNeedLoadMatrices());
      }
      result = result && getNeedRecoverPartsList()
          .equals(other.getNeedRecoverPartsList());
      result = result && (hasExecuteUnitDesc() == other.hasExecuteUnitDesc());
      if (hasExecuteUnitDesc()) {
        result = result && getExecuteUnitDesc()
            .equals(other.getExecuteUnitDesc());
      }
      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 (hasPsCommand()) {
        hash = (37 * hash) + PSCOMMAND_FIELD_NUMBER;
        hash = (53 * hash) + hashEnum(getPsCommand());
      }
      if (getNeedCreateMatricesCount() > 0) {
        hash = (37 * hash) + NEEDCREATEMATRICES_FIELD_NUMBER;
        hash = (53 * hash) + getNeedCreateMatricesList().hashCode();
      }
      if (getNeedReleaseMatrixIdsCount() > 0) {
        hash = (37 * hash) + NEEDRELEASEMATRIXIDS_FIELD_NUMBER;
        hash = (53 * hash) + getNeedReleaseMatrixIdsList().hashCode();
      }
      if (hasSavingRequest()) {
        hash = (37 * hash) + SAVINGREQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getSavingRequest();
      }
      if (hasLoadingRequest()) {
        hash = (37 * hash) + LOADINGREQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getLoadingRequest();
      }
      if (hasNeedSaveMatrices()) {
        hash = (37 * hash) + NEEDSAVEMATRICES_FIELD_NUMBER;
        hash = (53 * hash) + getNeedSaveMatrices().hashCode();
      }
      if (hasNeedLoadMatrices()) {
        hash = (37 * hash) + NEEDLOADMATRICES_FIELD_NUMBER;
        hash = (53 * hash) + getNeedLoadMatrices().hashCode();
      }
      if (getNeedRecoverPartsCount() > 0) {
        hash = (37 * hash) + NEEDRECOVERPARTS_FIELD_NUMBER;
        hash = (53 * hash) + getNeedRecoverPartsList().hashCode();
      }
      if (hasExecuteUnitDesc()) {
        hash = (37 * hash) + EXECUTEUNITDESC_FIELD_NUMBER;
        hash = (53 * hash) + getExecuteUnitDesc().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse 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.PSMasterServiceProtos.PSReportResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse 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.PSMasterServiceProtos.PSReportResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse 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.PSMasterServiceProtos.PSReportResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse 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.PSMasterServiceProtos.PSReportResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse 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.PSMasterServiceProtos.PSReportResponse 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 PSReportResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSReportResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (needCreateMatricesBuilder_ == null) {
          needCreateMatrices_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          needCreateMatricesBuilder_.clear();
        }
        needReleaseMatrixIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        savingRequest_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loadingRequest_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (needSaveMatricesBuilder_ == null) {
          needSaveMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance();
        } else {
          needSaveMatricesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (needLoadMatricesBuilder_ == null) {
          needLoadMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance();
        } else {
          needLoadMatricesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (needRecoverPartsBuilder_ == null) {
          needRecoverParts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          needRecoverPartsBuilder_.clear();
        }
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
        } else {
          executeUnitDescBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.psCommand_ = psCommand_;
        if (needCreateMatricesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            needCreateMatrices_ = java.util.Collections.unmodifiableList(needCreateMatrices_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.needCreateMatrices_ = needCreateMatrices_;
        } else {
          result.needCreateMatrices_ = needCreateMatricesBuilder_.build();
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          needReleaseMatrixIds_ = java.util.Collections.unmodifiableList(needReleaseMatrixIds_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.needReleaseMatrixIds_ = needReleaseMatrixIds_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        result.savingRequest_ = savingRequest_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000004;
        }
        result.loadingRequest_ = loadingRequest_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000008;
        }
        if (needSaveMatricesBuilder_ == null) {
          result.needSaveMatrices_ = needSaveMatrices_;
        } else {
          result.needSaveMatrices_ = needSaveMatricesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000010;
        }
        if (needLoadMatricesBuilder_ == null) {
          result.needLoadMatrices_ = needLoadMatrices_;
        } else {
          result.needLoadMatrices_ = needLoadMatricesBuilder_.build();
        }
        if (needRecoverPartsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            needRecoverParts_ = java.util.Collections.unmodifiableList(needRecoverParts_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.needRecoverParts_ = needRecoverParts_;
        } else {
          result.needRecoverParts_ = needRecoverPartsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000020;
        }
        if (executeUnitDescBuilder_ == null) {
          result.executeUnitDesc_ = executeUnitDesc_;
        } else {
          result.executeUnitDesc_ = executeUnitDescBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance()) return this;
        if (other.hasPsCommand()) {
          setPsCommand(other.getPsCommand());
        }
        if (needCreateMatricesBuilder_ == null) {
          if (!other.needCreateMatrices_.isEmpty()) {
            if (needCreateMatrices_.isEmpty()) {
              needCreateMatrices_ = other.needCreateMatrices_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureNeedCreateMatricesIsMutable();
              needCreateMatrices_.addAll(other.needCreateMatrices_);
            }
            onChanged();
          }
        } else {
          if (!other.needCreateMatrices_.isEmpty()) {
            if (needCreateMatricesBuilder_.isEmpty()) {
              needCreateMatricesBuilder_.dispose();
              needCreateMatricesBuilder_ = null;
              needCreateMatrices_ = other.needCreateMatrices_;
              bitField0_ = (bitField0_ & ~0x00000002);
              needCreateMatricesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getNeedCreateMatricesFieldBuilder() : null;
            } else {
              needCreateMatricesBuilder_.addAllMessages(other.needCreateMatrices_);
            }
          }
        }
        if (!other.needReleaseMatrixIds_.isEmpty()) {
          if (needReleaseMatrixIds_.isEmpty()) {
            needReleaseMatrixIds_ = other.needReleaseMatrixIds_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureNeedReleaseMatrixIdsIsMutable();
            needReleaseMatrixIds_.addAll(other.needReleaseMatrixIds_);
          }
          onChanged();
        }
        if (other.hasSavingRequest()) {
          setSavingRequest(other.getSavingRequest());
        }
        if (other.hasLoadingRequest()) {
          setLoadingRequest(other.getLoadingRequest());
        }
        if (other.hasNeedSaveMatrices()) {
          mergeNeedSaveMatrices(other.getNeedSaveMatrices());
        }
        if (other.hasNeedLoadMatrices()) {
          mergeNeedLoadMatrices(other.getNeedLoadMatrices());
        }
        if (needRecoverPartsBuilder_ == null) {
          if (!other.needRecoverParts_.isEmpty()) {
            if (needRecoverParts_.isEmpty()) {
              needRecoverParts_ = other.needRecoverParts_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureNeedRecoverPartsIsMutable();
              needRecoverParts_.addAll(other.needRecoverParts_);
            }
            onChanged();
          }
        } else {
          if (!other.needRecoverParts_.isEmpty()) {
            if (needRecoverPartsBuilder_.isEmpty()) {
              needRecoverPartsBuilder_.dispose();
              needRecoverPartsBuilder_ = null;
              needRecoverParts_ = other.needRecoverParts_;
              bitField0_ = (bitField0_ & ~0x00000080);
              needRecoverPartsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getNeedRecoverPartsFieldBuilder() : null;
            } else {
              needRecoverPartsBuilder_.addAllMessages(other.needRecoverParts_);
            }
          }
        }
        if (other.hasExecuteUnitDesc()) {
          mergeExecuteUnitDesc(other.getExecuteUnitDesc());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsCommand()) {
          
          return false;
        }
        for (int i = 0; i < getNeedCreateMatricesCount(); i++) {
          if (!getNeedCreateMatrices(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasNeedSaveMatrices()) {
          if (!getNeedSaveMatrices().isInitialized()) {
            
            return false;
          }
        }
        if (hasNeedLoadMatrices()) {
          if (!getNeedLoadMatrices().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getNeedRecoverPartsCount(); i++) {
          if (!getNeedRecoverParts(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasExecuteUnitDesc()) {
          if (!getExecuteUnitDesc().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.PSMasterServiceProtos.PSReportResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
      /**
       * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
       */
      public boolean hasPsCommand() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand() {
        return psCommand_;
      }
      /**
       * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
       */
      public Builder setPsCommand(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        psCommand_ = value;
        onChanged();
        return this;
      }
      /**
       * required .PSCommandProto psCommand = 1 [default = PSCOMMAND_OK];
       */
      public Builder clearPsCommand() {
        bitField0_ = (bitField0_ & ~0x00000001);
        psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
        onChanged();
        return this;
      }

      // repeated .MatrixMetaProto needCreateMatrices = 2;
      private java.util.List needCreateMatrices_ =
        java.util.Collections.emptyList();
      private void ensureNeedCreateMatricesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          needCreateMatrices_ = new java.util.ArrayList(needCreateMatrices_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder> needCreateMatricesBuilder_;

      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public java.util.List getNeedCreateMatricesList() {
        if (needCreateMatricesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(needCreateMatrices_);
        } else {
          return needCreateMatricesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public int getNeedCreateMatricesCount() {
        if (needCreateMatricesBuilder_ == null) {
          return needCreateMatrices_.size();
        } else {
          return needCreateMatricesBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getNeedCreateMatrices(int index) {
        if (needCreateMatricesBuilder_ == null) {
          return needCreateMatrices_.get(index);
        } else {
          return needCreateMatricesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder setNeedCreateMatrices(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (needCreateMatricesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.set(index, value);
          onChanged();
        } else {
          needCreateMatricesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder setNeedCreateMatrices(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (needCreateMatricesBuilder_ == null) {
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.set(index, builderForValue.build());
          onChanged();
        } else {
          needCreateMatricesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder addNeedCreateMatrices(com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (needCreateMatricesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.add(value);
          onChanged();
        } else {
          needCreateMatricesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder addNeedCreateMatrices(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (needCreateMatricesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.add(index, value);
          onChanged();
        } else {
          needCreateMatricesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder addNeedCreateMatrices(
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (needCreateMatricesBuilder_ == null) {
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.add(builderForValue.build());
          onChanged();
        } else {
          needCreateMatricesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder addNeedCreateMatrices(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (needCreateMatricesBuilder_ == null) {
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.add(index, builderForValue.build());
          onChanged();
        } else {
          needCreateMatricesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder addAllNeedCreateMatrices(
          java.lang.Iterable values) {
        if (needCreateMatricesBuilder_ == null) {
          ensureNeedCreateMatricesIsMutable();
          super.addAll(values, needCreateMatrices_);
          onChanged();
        } else {
          needCreateMatricesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder clearNeedCreateMatrices() {
        if (needCreateMatricesBuilder_ == null) {
          needCreateMatrices_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          needCreateMatricesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public Builder removeNeedCreateMatrices(int index) {
        if (needCreateMatricesBuilder_ == null) {
          ensureNeedCreateMatricesIsMutable();
          needCreateMatrices_.remove(index);
          onChanged();
        } else {
          needCreateMatricesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder getNeedCreateMatricesBuilder(
          int index) {
        return getNeedCreateMatricesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getNeedCreateMatricesOrBuilder(
          int index) {
        if (needCreateMatricesBuilder_ == null) {
          return needCreateMatrices_.get(index);  } else {
          return needCreateMatricesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public java.util.List 
           getNeedCreateMatricesOrBuilderList() {
        if (needCreateMatricesBuilder_ != null) {
          return needCreateMatricesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(needCreateMatrices_);
        }
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder addNeedCreateMatricesBuilder() {
        return getNeedCreateMatricesFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder addNeedCreateMatricesBuilder(
          int index) {
        return getNeedCreateMatricesFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixMetaProto needCreateMatrices = 2;
       */
      public java.util.List 
           getNeedCreateMatricesBuilderList() {
        return getNeedCreateMatricesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder> 
          getNeedCreateMatricesFieldBuilder() {
        if (needCreateMatricesBuilder_ == null) {
          needCreateMatricesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder>(
                  needCreateMatrices_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          needCreateMatrices_ = null;
        }
        return needCreateMatricesBuilder_;
      }

      // repeated int32 needReleaseMatrixIds = 3;
      private java.util.List needReleaseMatrixIds_ = java.util.Collections.emptyList();
      private void ensureNeedReleaseMatrixIdsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          needReleaseMatrixIds_ = new java.util.ArrayList(needReleaseMatrixIds_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public java.util.List
          getNeedReleaseMatrixIdsList() {
        return java.util.Collections.unmodifiableList(needReleaseMatrixIds_);
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public int getNeedReleaseMatrixIdsCount() {
        return needReleaseMatrixIds_.size();
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public int getNeedReleaseMatrixIds(int index) {
        return needReleaseMatrixIds_.get(index);
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public Builder setNeedReleaseMatrixIds(
          int index, int value) {
        ensureNeedReleaseMatrixIdsIsMutable();
        needReleaseMatrixIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public Builder addNeedReleaseMatrixIds(int value) {
        ensureNeedReleaseMatrixIdsIsMutable();
        needReleaseMatrixIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public Builder addAllNeedReleaseMatrixIds(
          java.lang.Iterable values) {
        ensureNeedReleaseMatrixIdsIsMutable();
        super.addAll(values, needReleaseMatrixIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 needReleaseMatrixIds = 3;
       */
      public Builder clearNeedReleaseMatrixIds() {
        needReleaseMatrixIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      // optional int32 savingRequest = 4;
      private int savingRequest_ ;
      /**
       * optional int32 savingRequest = 4;
       */
      public boolean hasSavingRequest() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 savingRequest = 4;
       */
      public int getSavingRequest() {
        return savingRequest_;
      }
      /**
       * optional int32 savingRequest = 4;
       */
      public Builder setSavingRequest(int value) {
        bitField0_ |= 0x00000008;
        savingRequest_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 savingRequest = 4;
       */
      public Builder clearSavingRequest() {
        bitField0_ = (bitField0_ & ~0x00000008);
        savingRequest_ = 0;
        onChanged();
        return this;
      }

      // optional int32 loadingRequest = 5;
      private int loadingRequest_ ;
      /**
       * optional int32 loadingRequest = 5;
       */
      public boolean hasLoadingRequest() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 loadingRequest = 5;
       */
      public int getLoadingRequest() {
        return loadingRequest_;
      }
      /**
       * optional int32 loadingRequest = 5;
       */
      public Builder setLoadingRequest(int value) {
        bitField0_ |= 0x00000010;
        loadingRequest_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 loadingRequest = 5;
       */
      public Builder clearLoadingRequest() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loadingRequest_ = 0;
        onChanged();
        return this;
      }

      // optional .PSMatricesSaveContextProto needSaveMatrices = 6;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto needSaveMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder> needSaveMatricesBuilder_;
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public boolean hasNeedSaveMatrices() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto getNeedSaveMatrices() {
        if (needSaveMatricesBuilder_ == null) {
          return needSaveMatrices_;
        } else {
          return needSaveMatricesBuilder_.getMessage();
        }
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public Builder setNeedSaveMatrices(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto value) {
        if (needSaveMatricesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          needSaveMatrices_ = value;
          onChanged();
        } else {
          needSaveMatricesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public Builder setNeedSaveMatrices(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder builderForValue) {
        if (needSaveMatricesBuilder_ == null) {
          needSaveMatrices_ = builderForValue.build();
          onChanged();
        } else {
          needSaveMatricesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public Builder mergeNeedSaveMatrices(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto value) {
        if (needSaveMatricesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              needSaveMatrices_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance()) {
            needSaveMatrices_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.newBuilder(needSaveMatrices_).mergeFrom(value).buildPartial();
          } else {
            needSaveMatrices_ = value;
          }
          onChanged();
        } else {
          needSaveMatricesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public Builder clearNeedSaveMatrices() {
        if (needSaveMatricesBuilder_ == null) {
          needSaveMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance();
          onChanged();
        } else {
          needSaveMatricesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder getNeedSaveMatricesBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getNeedSaveMatricesFieldBuilder().getBuilder();
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder getNeedSaveMatricesOrBuilder() {
        if (needSaveMatricesBuilder_ != null) {
          return needSaveMatricesBuilder_.getMessageOrBuilder();
        } else {
          return needSaveMatrices_;
        }
      }
      /**
       * optional .PSMatricesSaveContextProto needSaveMatrices = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder> 
          getNeedSaveMatricesFieldBuilder() {
        if (needSaveMatricesBuilder_ == null) {
          needSaveMatricesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder>(
                  needSaveMatrices_,
                  getParentForChildren(),
                  isClean());
          needSaveMatrices_ = null;
        }
        return needSaveMatricesBuilder_;
      }

      // optional .PSMatricesLoadContextProto needLoadMatrices = 7;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto needLoadMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder> needLoadMatricesBuilder_;
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public boolean hasNeedLoadMatrices() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto getNeedLoadMatrices() {
        if (needLoadMatricesBuilder_ == null) {
          return needLoadMatrices_;
        } else {
          return needLoadMatricesBuilder_.getMessage();
        }
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public Builder setNeedLoadMatrices(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto value) {
        if (needLoadMatricesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          needLoadMatrices_ = value;
          onChanged();
        } else {
          needLoadMatricesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public Builder setNeedLoadMatrices(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder builderForValue) {
        if (needLoadMatricesBuilder_ == null) {
          needLoadMatrices_ = builderForValue.build();
          onChanged();
        } else {
          needLoadMatricesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public Builder mergeNeedLoadMatrices(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto value) {
        if (needLoadMatricesBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              needLoadMatrices_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance()) {
            needLoadMatrices_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.newBuilder(needLoadMatrices_).mergeFrom(value).buildPartial();
          } else {
            needLoadMatrices_ = value;
          }
          onChanged();
        } else {
          needLoadMatricesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public Builder clearNeedLoadMatrices() {
        if (needLoadMatricesBuilder_ == null) {
          needLoadMatrices_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance();
          onChanged();
        } else {
          needLoadMatricesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder getNeedLoadMatricesBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getNeedLoadMatricesFieldBuilder().getBuilder();
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder getNeedLoadMatricesOrBuilder() {
        if (needLoadMatricesBuilder_ != null) {
          return needLoadMatricesBuilder_.getMessageOrBuilder();
        } else {
          return needLoadMatrices_;
        }
      }
      /**
       * optional .PSMatricesLoadContextProto needLoadMatrices = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder> 
          getNeedLoadMatricesFieldBuilder() {
        if (needLoadMatricesBuilder_ == null) {
          needLoadMatricesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder>(
                  needLoadMatrices_,
                  getParentForChildren(),
                  isClean());
          needLoadMatrices_ = null;
        }
        return needLoadMatricesBuilder_;
      }

      // repeated .RecoverPartKeyProto needRecoverParts = 8;
      private java.util.List needRecoverParts_ =
        java.util.Collections.emptyList();
      private void ensureNeedRecoverPartsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          needRecoverParts_ = new java.util.ArrayList(needRecoverParts_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder> needRecoverPartsBuilder_;

      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public java.util.List getNeedRecoverPartsList() {
        if (needRecoverPartsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(needRecoverParts_);
        } else {
          return needRecoverPartsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public int getNeedRecoverPartsCount() {
        if (needRecoverPartsBuilder_ == null) {
          return needRecoverParts_.size();
        } else {
          return needRecoverPartsBuilder_.getCount();
        }
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto getNeedRecoverParts(int index) {
        if (needRecoverPartsBuilder_ == null) {
          return needRecoverParts_.get(index);
        } else {
          return needRecoverPartsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder setNeedRecoverParts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto value) {
        if (needRecoverPartsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.set(index, value);
          onChanged();
        } else {
          needRecoverPartsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder setNeedRecoverParts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder builderForValue) {
        if (needRecoverPartsBuilder_ == null) {
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.set(index, builderForValue.build());
          onChanged();
        } else {
          needRecoverPartsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder addNeedRecoverParts(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto value) {
        if (needRecoverPartsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.add(value);
          onChanged();
        } else {
          needRecoverPartsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder addNeedRecoverParts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto value) {
        if (needRecoverPartsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.add(index, value);
          onChanged();
        } else {
          needRecoverPartsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder addNeedRecoverParts(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder builderForValue) {
        if (needRecoverPartsBuilder_ == null) {
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.add(builderForValue.build());
          onChanged();
        } else {
          needRecoverPartsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder addNeedRecoverParts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder builderForValue) {
        if (needRecoverPartsBuilder_ == null) {
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.add(index, builderForValue.build());
          onChanged();
        } else {
          needRecoverPartsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder addAllNeedRecoverParts(
          java.lang.Iterable values) {
        if (needRecoverPartsBuilder_ == null) {
          ensureNeedRecoverPartsIsMutable();
          super.addAll(values, needRecoverParts_);
          onChanged();
        } else {
          needRecoverPartsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder clearNeedRecoverParts() {
        if (needRecoverPartsBuilder_ == null) {
          needRecoverParts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          needRecoverPartsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public Builder removeNeedRecoverParts(int index) {
        if (needRecoverPartsBuilder_ == null) {
          ensureNeedRecoverPartsIsMutable();
          needRecoverParts_.remove(index);
          onChanged();
        } else {
          needRecoverPartsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder getNeedRecoverPartsBuilder(
          int index) {
        return getNeedRecoverPartsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder getNeedRecoverPartsOrBuilder(
          int index) {
        if (needRecoverPartsBuilder_ == null) {
          return needRecoverParts_.get(index);  } else {
          return needRecoverPartsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public java.util.List 
           getNeedRecoverPartsOrBuilderList() {
        if (needRecoverPartsBuilder_ != null) {
          return needRecoverPartsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(needRecoverParts_);
        }
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder addNeedRecoverPartsBuilder() {
        return getNeedRecoverPartsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.getDefaultInstance());
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder addNeedRecoverPartsBuilder(
          int index) {
        return getNeedRecoverPartsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.getDefaultInstance());
      }
      /**
       * repeated .RecoverPartKeyProto needRecoverParts = 8;
       */
      public java.util.List 
           getNeedRecoverPartsBuilderList() {
        return getNeedRecoverPartsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder> 
          getNeedRecoverPartsFieldBuilder() {
        if (needRecoverPartsBuilder_ == null) {
          needRecoverPartsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder>(
                  needRecoverParts_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          needRecoverParts_ = null;
        }
        return needRecoverPartsBuilder_;
      }

      // optional .ExecuteUnitDesc executeUnitDesc = 9;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder> executeUnitDescBuilder_;
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public boolean hasExecuteUnitDesc() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc() {
        if (executeUnitDescBuilder_ == null) {
          return executeUnitDesc_;
        } else {
          return executeUnitDescBuilder_.getMessage();
        }
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public Builder setExecuteUnitDesc(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc value) {
        if (executeUnitDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          executeUnitDesc_ = value;
          onChanged();
        } else {
          executeUnitDescBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public Builder setExecuteUnitDesc(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder builderForValue) {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = builderForValue.build();
          onChanged();
        } else {
          executeUnitDescBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public Builder mergeExecuteUnitDesc(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc value) {
        if (executeUnitDescBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              executeUnitDesc_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance()) {
            executeUnitDesc_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.newBuilder(executeUnitDesc_).mergeFrom(value).buildPartial();
          } else {
            executeUnitDesc_ = value;
          }
          onChanged();
        } else {
          executeUnitDescBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public Builder clearExecuteUnitDesc() {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
          onChanged();
        } else {
          executeUnitDescBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder getExecuteUnitDescBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getExecuteUnitDescFieldBuilder().getBuilder();
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder() {
        if (executeUnitDescBuilder_ != null) {
          return executeUnitDescBuilder_.getMessageOrBuilder();
        } else {
          return executeUnitDesc_;
        }
      }
      /**
       * optional .ExecuteUnitDesc executeUnitDesc = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder> 
          getExecuteUnitDescFieldBuilder() {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDescBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder>(
                  executeUnitDesc_,
                  getParentForChildren(),
                  isClean());
          executeUnitDesc_ = null;
        }
        return executeUnitDescBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSReportResponse)
    }

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

    // @@protoc_insertion_point(class_scope:PSReportResponse)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();

    // required int32 subRequestId = 2;
    /**
     * required int32 subRequestId = 2;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 2;
     */
    int getSubRequestId();

    // repeated .PSMatrixSaveContextProto subSaveContexts = 3;
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    java.util.List 
        getSubSaveContextsList();
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto getSubSaveContexts(int index);
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    int getSubSaveContextsCount();
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    java.util.List 
        getSubSaveContextsOrBuilderList();
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder getSubSaveContextsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PSMatricesSaveContextProto}
   */
  public static final class PSMatricesSaveContextProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatricesSaveContextProtoOrBuilder {
    // Use PSMatricesSaveContextProto.newBuilder() to construct.
    private PSMatricesSaveContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatricesSaveContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatricesSaveContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatricesSaveContextProto(
        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;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              subRequestId_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                subSaveContexts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              subSaveContexts_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.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)) {
          subSaveContexts_ = java.util.Collections.unmodifiableList(subSaveContexts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSMatricesSaveContextProto parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSMatricesSaveContextProto(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_;
    }

    // required int32 subRequestId = 2;
    public static final int SUBREQUESTID_FIELD_NUMBER = 2;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 2;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 subRequestId = 2;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

    // repeated .PSMatrixSaveContextProto subSaveContexts = 3;
    public static final int SUBSAVECONTEXTS_FIELD_NUMBER = 3;
    private java.util.List subSaveContexts_;
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    public java.util.List getSubSaveContextsList() {
      return subSaveContexts_;
    }
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    public java.util.List 
        getSubSaveContextsOrBuilderList() {
      return subSaveContexts_;
    }
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    public int getSubSaveContextsCount() {
      return subSaveContexts_.size();
    }
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto getSubSaveContexts(int index) {
      return subSaveContexts_.get(index);
    }
    /**
     * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder getSubSaveContextsOrBuilder(
        int index) {
      return subSaveContexts_.get(index);
    }

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

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getSubSaveContextsCount(); i++) {
        if (!getSubSaveContexts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, subRequestId_);
      }
      for (int i = 0; i < subSaveContexts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, subSaveContexts_.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.PSMasterServiceProtos.PSMatricesSaveContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      result = result && getSubSaveContextsList()
          .equals(other.getSubSaveContextsList());
      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();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      if (getSubSaveContextsCount() > 0) {
        hash = (37 * hash) + SUBSAVECONTEXTS_FIELD_NUMBER;
        hash = (53 * hash) + getSubSaveContextsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto 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.PSMasterServiceProtos.PSMatricesSaveContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto 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.PSMasterServiceProtos.PSMatricesSaveContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto 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.PSMasterServiceProtos.PSMatricesSaveContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto 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.PSMasterServiceProtos.PSMatricesSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto 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.PSMasterServiceProtos.PSMatricesSaveContextProto 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 PSMatricesSaveContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesSaveContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        subRequestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (subSaveContextsBuilder_ == null) {
          subSaveContexts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          subSaveContextsBuilder_.clear();
        }
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.subRequestId_ = subRequestId_;
        if (subSaveContextsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            subSaveContexts_ = java.util.Collections.unmodifiableList(subSaveContexts_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.subSaveContexts_ = subSaveContexts_;
        } else {
          result.subSaveContexts_ = subSaveContextsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        if (subSaveContextsBuilder_ == null) {
          if (!other.subSaveContexts_.isEmpty()) {
            if (subSaveContexts_.isEmpty()) {
              subSaveContexts_ = other.subSaveContexts_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSubSaveContextsIsMutable();
              subSaveContexts_.addAll(other.subSaveContexts_);
            }
            onChanged();
          }
        } else {
          if (!other.subSaveContexts_.isEmpty()) {
            if (subSaveContextsBuilder_.isEmpty()) {
              subSaveContextsBuilder_.dispose();
              subSaveContextsBuilder_ = null;
              subSaveContexts_ = other.subSaveContexts_;
              bitField0_ = (bitField0_ & ~0x00000004);
              subSaveContextsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSubSaveContextsFieldBuilder() : null;
            } else {
              subSaveContextsBuilder_.addAllMessages(other.subSaveContexts_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        for (int i = 0; i < getSubSaveContextsCount(); i++) {
          if (!getSubSaveContexts(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.PSMasterServiceProtos.PSMatricesSaveContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveContextProto) 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;
      }

      // required int32 subRequestId = 2;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 2;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 subRequestId = 2;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000002;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // repeated .PSMatrixSaveContextProto subSaveContexts = 3;
      private java.util.List subSaveContexts_ =
        java.util.Collections.emptyList();
      private void ensureSubSaveContextsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          subSaveContexts_ = new java.util.ArrayList(subSaveContexts_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder> subSaveContextsBuilder_;

      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public java.util.List getSubSaveContextsList() {
        if (subSaveContextsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(subSaveContexts_);
        } else {
          return subSaveContextsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public int getSubSaveContextsCount() {
        if (subSaveContextsBuilder_ == null) {
          return subSaveContexts_.size();
        } else {
          return subSaveContextsBuilder_.getCount();
        }
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto getSubSaveContexts(int index) {
        if (subSaveContextsBuilder_ == null) {
          return subSaveContexts_.get(index);
        } else {
          return subSaveContextsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder setSubSaveContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto value) {
        if (subSaveContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.set(index, value);
          onChanged();
        } else {
          subSaveContextsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder setSubSaveContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder builderForValue) {
        if (subSaveContextsBuilder_ == null) {
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.set(index, builderForValue.build());
          onChanged();
        } else {
          subSaveContextsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder addSubSaveContexts(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto value) {
        if (subSaveContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.add(value);
          onChanged();
        } else {
          subSaveContextsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder addSubSaveContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto value) {
        if (subSaveContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.add(index, value);
          onChanged();
        } else {
          subSaveContextsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder addSubSaveContexts(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder builderForValue) {
        if (subSaveContextsBuilder_ == null) {
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.add(builderForValue.build());
          onChanged();
        } else {
          subSaveContextsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder addSubSaveContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder builderForValue) {
        if (subSaveContextsBuilder_ == null) {
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.add(index, builderForValue.build());
          onChanged();
        } else {
          subSaveContextsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder addAllSubSaveContexts(
          java.lang.Iterable values) {
        if (subSaveContextsBuilder_ == null) {
          ensureSubSaveContextsIsMutable();
          super.addAll(values, subSaveContexts_);
          onChanged();
        } else {
          subSaveContextsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder clearSubSaveContexts() {
        if (subSaveContextsBuilder_ == null) {
          subSaveContexts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          subSaveContextsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public Builder removeSubSaveContexts(int index) {
        if (subSaveContextsBuilder_ == null) {
          ensureSubSaveContextsIsMutable();
          subSaveContexts_.remove(index);
          onChanged();
        } else {
          subSaveContextsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder getSubSaveContextsBuilder(
          int index) {
        return getSubSaveContextsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder getSubSaveContextsOrBuilder(
          int index) {
        if (subSaveContextsBuilder_ == null) {
          return subSaveContexts_.get(index);  } else {
          return subSaveContextsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public java.util.List 
           getSubSaveContextsOrBuilderList() {
        if (subSaveContextsBuilder_ != null) {
          return subSaveContextsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(subSaveContexts_);
        }
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder addSubSaveContextsBuilder() {
        return getSubSaveContextsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.getDefaultInstance());
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder addSubSaveContextsBuilder(
          int index) {
        return getSubSaveContextsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.getDefaultInstance());
      }
      /**
       * repeated .PSMatrixSaveContextProto subSaveContexts = 3;
       */
      public java.util.List 
           getSubSaveContextsBuilderList() {
        return getSubSaveContextsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder> 
          getSubSaveContextsFieldBuilder() {
        if (subSaveContextsBuilder_ == null) {
          subSaveContextsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder>(
                  subSaveContexts_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          subSaveContexts_ = null;
        }
        return subSaveContextsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSMatricesSaveContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatricesSaveContextProto)
  }

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

    // required int32 matrixId = 1;
    /**
     * required int32 matrixId = 1;
     */
    boolean hasMatrixId();
    /**
     * required int32 matrixId = 1;
     */
    int getMatrixId();

    // repeated int32 partIds = 2;
    /**
     * repeated int32 partIds = 2;
     */
    java.util.List getPartIdsList();
    /**
     * repeated int32 partIds = 2;
     */
    int getPartIdsCount();
    /**
     * repeated int32 partIds = 2;
     */
    int getPartIds(int index);

    // 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);

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

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

    // required bool cloneFirst = 6;
    /**
     * required bool cloneFirst = 6;
     */
    boolean hasCloneFirst();
    /**
     * required bool cloneFirst = 6;
     */
    boolean getCloneFirst();

    // required bool sortFirst = 7;
    /**
     * required bool sortFirst = 7;
     */
    boolean hasSortFirst();
    /**
     * required bool sortFirst = 7;
     */
    boolean getSortFirst();
  }
  /**
   * Protobuf type {@code PSMatrixSaveContextProto}
   */
  public static final class PSMatrixSaveContextProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatrixSaveContextProtoOrBuilder {
    // Use PSMatrixSaveContextProto.newBuilder() to construct.
    private PSMatrixSaveContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatrixSaveContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatrixSaveContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatrixSaveContextProto(
        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;
              matrixId_ = input.readInt32();
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                partIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              partIds_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                partIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                partIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              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: {
              bitField0_ |= 0x00000002;
              savePath_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000004;
              formatClassName_ = input.readBytes();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000008;
              cloneFirst_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000010;
              sortFirst_ = input.readBool();
              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)) {
          partIds_ = java.util.Collections.unmodifiableList(partIds_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          rowIndexes_ = java.util.Collections.unmodifiableList(rowIndexes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixSaveContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixSaveContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 matrixId = 1;
    public static final int MATRIXID_FIELD_NUMBER = 1;
    private int matrixId_;
    /**
     * required int32 matrixId = 1;
     */
    public boolean hasMatrixId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 matrixId = 1;
     */
    public int getMatrixId() {
      return matrixId_;
    }

    // repeated int32 partIds = 2;
    public static final int PARTIDS_FIELD_NUMBER = 2;
    private java.util.List partIds_;
    /**
     * repeated int32 partIds = 2;
     */
    public java.util.List
        getPartIdsList() {
      return partIds_;
    }
    /**
     * repeated int32 partIds = 2;
     */
    public int getPartIdsCount() {
      return partIds_.size();
    }
    /**
     * repeated int32 partIds = 2;
     */
    public int getPartIds(int index) {
      return partIds_.get(index);
    }

    // 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);
    }

    // required string savePath = 4;
    public static final int SAVEPATH_FIELD_NUMBER = 4;
    private java.lang.Object savePath_;
    /**
     * required string savePath = 4;
     */
    public boolean hasSavePath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string savePath = 4;
     */
    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 = 4;
     */
    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;
      }
    }

    // required string formatClassName = 5;
    public static final int FORMATCLASSNAME_FIELD_NUMBER = 5;
    private java.lang.Object formatClassName_;
    /**
     * required string formatClassName = 5;
     */
    public boolean hasFormatClassName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required string formatClassName = 5;
     */
    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 = 5;
     */
    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;
      }
    }

    // required bool cloneFirst = 6;
    public static final int CLONEFIRST_FIELD_NUMBER = 6;
    private boolean cloneFirst_;
    /**
     * required bool cloneFirst = 6;
     */
    public boolean hasCloneFirst() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required bool cloneFirst = 6;
     */
    public boolean getCloneFirst() {
      return cloneFirst_;
    }

    // required bool sortFirst = 7;
    public static final int SORTFIRST_FIELD_NUMBER = 7;
    private boolean sortFirst_;
    /**
     * required bool sortFirst = 7;
     */
    public boolean hasSortFirst() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * required bool sortFirst = 7;
     */
    public boolean getSortFirst() {
      return sortFirst_;
    }

    private void initFields() {
      matrixId_ = 0;
      partIds_ = java.util.Collections.emptyList();
      rowIndexes_ = java.util.Collections.emptyList();
      savePath_ = "";
      formatClassName_ = "";
      cloneFirst_ = false;
      sortFirst_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMatrixId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSavePath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFormatClassName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCloneFirst()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSortFirst()) {
        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, matrixId_);
      }
      for (int i = 0; i < partIds_.size(); i++) {
        output.writeInt32(2, partIds_.get(i));
      }
      for (int i = 0; i < rowIndexes_.size(); i++) {
        output.writeInt32(3, rowIndexes_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(4, getSavePathBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(5, getFormatClassNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(6, cloneFirst_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(7, sortFirst_);
      }
      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, matrixId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < partIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(partIds_.get(i));
        }
        size += dataSize;
        size += 1 * getPartIdsList().size();
      }
      {
        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();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getSavePathBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getFormatClassNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, cloneFirst_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, sortFirst_);
      }
      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.PSMasterServiceProtos.PSMatrixSaveContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto) obj;

      boolean result = true;
      result = result && (hasMatrixId() == other.hasMatrixId());
      if (hasMatrixId()) {
        result = result && (getMatrixId()
            == other.getMatrixId());
      }
      result = result && getPartIdsList()
          .equals(other.getPartIdsList());
      result = result && getRowIndexesList()
          .equals(other.getRowIndexesList());
      result = result && (hasSavePath() == other.hasSavePath());
      if (hasSavePath()) {
        result = result && getSavePath()
            .equals(other.getSavePath());
      }
      result = result && (hasFormatClassName() == other.hasFormatClassName());
      if (hasFormatClassName()) {
        result = result && getFormatClassName()
            .equals(other.getFormatClassName());
      }
      result = result && (hasCloneFirst() == other.hasCloneFirst());
      if (hasCloneFirst()) {
        result = result && (getCloneFirst()
            == other.getCloneFirst());
      }
      result = result && (hasSortFirst() == other.hasSortFirst());
      if (hasSortFirst()) {
        result = result && (getSortFirst()
            == other.getSortFirst());
      }
      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 (hasMatrixId()) {
        hash = (37 * hash) + MATRIXID_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixId();
      }
      if (getPartIdsCount() > 0) {
        hash = (37 * hash) + PARTIDS_FIELD_NUMBER;
        hash = (53 * hash) + getPartIdsList().hashCode();
      }
      if (getRowIndexesCount() > 0) {
        hash = (37 * hash) + ROWINDEXES_FIELD_NUMBER;
        hash = (53 * hash) + getRowIndexesList().hashCode();
      }
      if (hasSavePath()) {
        hash = (37 * hash) + SAVEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getSavePath().hashCode();
      }
      if (hasFormatClassName()) {
        hash = (37 * hash) + FORMATCLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getFormatClassName().hashCode();
      }
      if (hasCloneFirst()) {
        hash = (37 * hash) + CLONEFIRST_FIELD_NUMBER;
        hash = (53 * hash) + hashBoolean(getCloneFirst());
      }
      if (hasSortFirst()) {
        hash = (37 * hash) + SORTFIRST_FIELD_NUMBER;
        hash = (53 * hash) + hashBoolean(getSortFirst());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto 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.PSMasterServiceProtos.PSMatrixSaveContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto 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.PSMasterServiceProtos.PSMatrixSaveContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto 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.PSMasterServiceProtos.PSMatrixSaveContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto 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.PSMasterServiceProtos.PSMatrixSaveContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto 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.PSMasterServiceProtos.PSMatrixSaveContextProto 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 PSMatrixSaveContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixSaveContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixSaveContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.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();
        matrixId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        partIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        rowIndexes_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        savePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        formatClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        cloneFirst_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        sortFirst_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixId_ = matrixId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          partIds_ = java.util.Collections.unmodifiableList(partIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.partIds_ = partIds_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          rowIndexes_ = java.util.Collections.unmodifiableList(rowIndexes_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.rowIndexes_ = rowIndexes_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        result.savePath_ = savePath_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000004;
        }
        result.formatClassName_ = formatClassName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cloneFirst_ = cloneFirst_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000010;
        }
        result.sortFirst_ = sortFirst_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto.getDefaultInstance()) return this;
        if (other.hasMatrixId()) {
          setMatrixId(other.getMatrixId());
        }
        if (!other.partIds_.isEmpty()) {
          if (partIds_.isEmpty()) {
            partIds_ = other.partIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePartIdsIsMutable();
            partIds_.addAll(other.partIds_);
          }
          onChanged();
        }
        if (!other.rowIndexes_.isEmpty()) {
          if (rowIndexes_.isEmpty()) {
            rowIndexes_ = other.rowIndexes_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureRowIndexesIsMutable();
            rowIndexes_.addAll(other.rowIndexes_);
          }
          onChanged();
        }
        if (other.hasSavePath()) {
          bitField0_ |= 0x00000008;
          savePath_ = other.savePath_;
          onChanged();
        }
        if (other.hasFormatClassName()) {
          bitField0_ |= 0x00000010;
          formatClassName_ = other.formatClassName_;
          onChanged();
        }
        if (other.hasCloneFirst()) {
          setCloneFirst(other.getCloneFirst());
        }
        if (other.hasSortFirst()) {
          setSortFirst(other.getSortFirst());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMatrixId()) {
          
          return false;
        }
        if (!hasSavePath()) {
          
          return false;
        }
        if (!hasFormatClassName()) {
          
          return false;
        }
        if (!hasCloneFirst()) {
          
          return false;
        }
        if (!hasSortFirst()) {
          
          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.PSMasterServiceProtos.PSMatrixSaveContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixSaveContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 matrixId = 1;
      private int matrixId_ ;
      /**
       * required int32 matrixId = 1;
       */
      public boolean hasMatrixId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 matrixId = 1;
       */
      public int getMatrixId() {
        return matrixId_;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder setMatrixId(int value) {
        bitField0_ |= 0x00000001;
        matrixId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder clearMatrixId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixId_ = 0;
        onChanged();
        return this;
      }

      // repeated int32 partIds = 2;
      private java.util.List partIds_ = java.util.Collections.emptyList();
      private void ensurePartIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          partIds_ = new java.util.ArrayList(partIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated int32 partIds = 2;
       */
      public java.util.List
          getPartIdsList() {
        return java.util.Collections.unmodifiableList(partIds_);
      }
      /**
       * repeated int32 partIds = 2;
       */
      public int getPartIdsCount() {
        return partIds_.size();
      }
      /**
       * repeated int32 partIds = 2;
       */
      public int getPartIds(int index) {
        return partIds_.get(index);
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder setPartIds(
          int index, int value) {
        ensurePartIdsIsMutable();
        partIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder addPartIds(int value) {
        ensurePartIdsIsMutable();
        partIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder addAllPartIds(
          java.lang.Iterable values) {
        ensurePartIdsIsMutable();
        super.addAll(values, partIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder clearPartIds() {
        partIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        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;
      }

      // required string savePath = 4;
      private java.lang.Object savePath_ = "";
      /**
       * required string savePath = 4;
       */
      public boolean hasSavePath() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required string savePath = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      public Builder setSavePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        savePath_ = value;
        onChanged();
        return this;
      }
      /**
       * required string savePath = 4;
       */
      public Builder clearSavePath() {
        bitField0_ = (bitField0_ & ~0x00000008);
        savePath_ = getDefaultInstance().getSavePath();
        onChanged();
        return this;
      }
      /**
       * required string savePath = 4;
       */
      public Builder setSavePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        savePath_ = value;
        onChanged();
        return this;
      }

      // required string formatClassName = 5;
      private java.lang.Object formatClassName_ = "";
      /**
       * required string formatClassName = 5;
       */
      public boolean hasFormatClassName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * required string formatClassName = 5;
       */
      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 = 5;
       */
      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 = 5;
       */
      public Builder setFormatClassName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        formatClassName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 5;
       */
      public Builder clearFormatClassName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        formatClassName_ = getDefaultInstance().getFormatClassName();
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 5;
       */
      public Builder setFormatClassNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        formatClassName_ = value;
        onChanged();
        return this;
      }

      // required bool cloneFirst = 6;
      private boolean cloneFirst_ ;
      /**
       * required bool cloneFirst = 6;
       */
      public boolean hasCloneFirst() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * required bool cloneFirst = 6;
       */
      public boolean getCloneFirst() {
        return cloneFirst_;
      }
      /**
       * required bool cloneFirst = 6;
       */
      public Builder setCloneFirst(boolean value) {
        bitField0_ |= 0x00000020;
        cloneFirst_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool cloneFirst = 6;
       */
      public Builder clearCloneFirst() {
        bitField0_ = (bitField0_ & ~0x00000020);
        cloneFirst_ = false;
        onChanged();
        return this;
      }

      // required bool sortFirst = 7;
      private boolean sortFirst_ ;
      /**
       * required bool sortFirst = 7;
       */
      public boolean hasSortFirst() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * required bool sortFirst = 7;
       */
      public boolean getSortFirst() {
        return sortFirst_;
      }
      /**
       * required bool sortFirst = 7;
       */
      public Builder setSortFirst(boolean value) {
        bitField0_ |= 0x00000040;
        sortFirst_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool sortFirst = 7;
       */
      public Builder clearSortFirst() {
        bitField0_ = (bitField0_ & ~0x00000040);
        sortFirst_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSMatrixSaveContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatrixSaveContextProto)
  }

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

    // required int32 requestId = 1;
    /**
     * required int32 requestId = 1;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 1;
     */
    int getRequestId();

    // required int32 subRequestId = 2;
    /**
     * required int32 subRequestId = 2;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 2;
     */
    int getSubRequestId();

    // repeated .PSMatrixLoadContextProto subLoadContexts = 3;
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    java.util.List 
        getSubLoadContextsList();
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto getSubLoadContexts(int index);
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    int getSubLoadContextsCount();
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    java.util.List 
        getSubLoadContextsOrBuilderList();
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder getSubLoadContextsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code PSMatricesLoadContextProto}
   */
  public static final class PSMatricesLoadContextProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatricesLoadContextProtoOrBuilder {
    // Use PSMatricesLoadContextProto.newBuilder() to construct.
    private PSMatricesLoadContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatricesLoadContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatricesLoadContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatricesLoadContextProto(
        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;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              subRequestId_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                subLoadContexts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              subLoadContexts_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.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)) {
          subLoadContexts_ = java.util.Collections.unmodifiableList(subLoadContexts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSMatricesLoadContextProto parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSMatricesLoadContextProto(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_;
    }

    // required int32 subRequestId = 2;
    public static final int SUBREQUESTID_FIELD_NUMBER = 2;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 2;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 subRequestId = 2;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

    // repeated .PSMatrixLoadContextProto subLoadContexts = 3;
    public static final int SUBLOADCONTEXTS_FIELD_NUMBER = 3;
    private java.util.List subLoadContexts_;
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    public java.util.List getSubLoadContextsList() {
      return subLoadContexts_;
    }
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    public java.util.List 
        getSubLoadContextsOrBuilderList() {
      return subLoadContexts_;
    }
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    public int getSubLoadContextsCount() {
      return subLoadContexts_.size();
    }
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto getSubLoadContexts(int index) {
      return subLoadContexts_.get(index);
    }
    /**
     * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder getSubLoadContextsOrBuilder(
        int index) {
      return subLoadContexts_.get(index);
    }

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

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getSubLoadContextsCount(); i++) {
        if (!getSubLoadContexts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, subRequestId_);
      }
      for (int i = 0; i < subLoadContexts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, subLoadContexts_.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.PSMasterServiceProtos.PSMatricesLoadContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto) obj;

      boolean result = true;
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      result = result && getSubLoadContextsList()
          .equals(other.getSubLoadContextsList());
      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();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      if (getSubLoadContextsCount() > 0) {
        hash = (37 * hash) + SUBLOADCONTEXTS_FIELD_NUMBER;
        hash = (53 * hash) + getSubLoadContextsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto 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.PSMasterServiceProtos.PSMatricesLoadContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto 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.PSMasterServiceProtos.PSMatricesLoadContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto 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.PSMasterServiceProtos.PSMatricesLoadContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto 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.PSMasterServiceProtos.PSMatricesLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto 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.PSMasterServiceProtos.PSMatricesLoadContextProto 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 PSMatricesLoadContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatricesLoadContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        subRequestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (subLoadContextsBuilder_ == null) {
          subLoadContexts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          subLoadContextsBuilder_.clear();
        }
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.subRequestId_ = subRequestId_;
        if (subLoadContextsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            subLoadContexts_ = java.util.Collections.unmodifiableList(subLoadContexts_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.subLoadContexts_ = subLoadContexts_;
        } else {
          result.subLoadContexts_ = subLoadContextsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        if (subLoadContextsBuilder_ == null) {
          if (!other.subLoadContexts_.isEmpty()) {
            if (subLoadContexts_.isEmpty()) {
              subLoadContexts_ = other.subLoadContexts_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSubLoadContextsIsMutable();
              subLoadContexts_.addAll(other.subLoadContexts_);
            }
            onChanged();
          }
        } else {
          if (!other.subLoadContexts_.isEmpty()) {
            if (subLoadContextsBuilder_.isEmpty()) {
              subLoadContextsBuilder_.dispose();
              subLoadContextsBuilder_ = null;
              subLoadContexts_ = other.subLoadContexts_;
              bitField0_ = (bitField0_ & ~0x00000004);
              subLoadContextsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSubLoadContextsFieldBuilder() : null;
            } else {
              subLoadContextsBuilder_.addAllMessages(other.subLoadContexts_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        for (int i = 0; i < getSubLoadContextsCount(); i++) {
          if (!getSubLoadContexts(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.PSMasterServiceProtos.PSMatricesLoadContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadContextProto) 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;
      }

      // required int32 subRequestId = 2;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 2;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 subRequestId = 2;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000002;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 2;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // repeated .PSMatrixLoadContextProto subLoadContexts = 3;
      private java.util.List subLoadContexts_ =
        java.util.Collections.emptyList();
      private void ensureSubLoadContextsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          subLoadContexts_ = new java.util.ArrayList(subLoadContexts_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder> subLoadContextsBuilder_;

      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public java.util.List getSubLoadContextsList() {
        if (subLoadContextsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(subLoadContexts_);
        } else {
          return subLoadContextsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public int getSubLoadContextsCount() {
        if (subLoadContextsBuilder_ == null) {
          return subLoadContexts_.size();
        } else {
          return subLoadContextsBuilder_.getCount();
        }
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto getSubLoadContexts(int index) {
        if (subLoadContextsBuilder_ == null) {
          return subLoadContexts_.get(index);
        } else {
          return subLoadContextsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder setSubLoadContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto value) {
        if (subLoadContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.set(index, value);
          onChanged();
        } else {
          subLoadContextsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder setSubLoadContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder builderForValue) {
        if (subLoadContextsBuilder_ == null) {
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.set(index, builderForValue.build());
          onChanged();
        } else {
          subLoadContextsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder addSubLoadContexts(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto value) {
        if (subLoadContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.add(value);
          onChanged();
        } else {
          subLoadContextsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder addSubLoadContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto value) {
        if (subLoadContextsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.add(index, value);
          onChanged();
        } else {
          subLoadContextsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder addSubLoadContexts(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder builderForValue) {
        if (subLoadContextsBuilder_ == null) {
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.add(builderForValue.build());
          onChanged();
        } else {
          subLoadContextsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder addSubLoadContexts(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder builderForValue) {
        if (subLoadContextsBuilder_ == null) {
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.add(index, builderForValue.build());
          onChanged();
        } else {
          subLoadContextsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder addAllSubLoadContexts(
          java.lang.Iterable values) {
        if (subLoadContextsBuilder_ == null) {
          ensureSubLoadContextsIsMutable();
          super.addAll(values, subLoadContexts_);
          onChanged();
        } else {
          subLoadContextsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder clearSubLoadContexts() {
        if (subLoadContextsBuilder_ == null) {
          subLoadContexts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          subLoadContextsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public Builder removeSubLoadContexts(int index) {
        if (subLoadContextsBuilder_ == null) {
          ensureSubLoadContextsIsMutable();
          subLoadContexts_.remove(index);
          onChanged();
        } else {
          subLoadContextsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder getSubLoadContextsBuilder(
          int index) {
        return getSubLoadContextsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder getSubLoadContextsOrBuilder(
          int index) {
        if (subLoadContextsBuilder_ == null) {
          return subLoadContexts_.get(index);  } else {
          return subLoadContextsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public java.util.List 
           getSubLoadContextsOrBuilderList() {
        if (subLoadContextsBuilder_ != null) {
          return subLoadContextsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(subLoadContexts_);
        }
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder addSubLoadContextsBuilder() {
        return getSubLoadContextsFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.getDefaultInstance());
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder addSubLoadContextsBuilder(
          int index) {
        return getSubLoadContextsFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.getDefaultInstance());
      }
      /**
       * repeated .PSMatrixLoadContextProto subLoadContexts = 3;
       */
      public java.util.List 
           getSubLoadContextsBuilderList() {
        return getSubLoadContextsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder> 
          getSubLoadContextsFieldBuilder() {
        if (subLoadContextsBuilder_ == null) {
          subLoadContextsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder>(
                  subLoadContexts_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          subLoadContexts_ = null;
        }
        return subLoadContextsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSMatricesLoadContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatricesLoadContextProto)
  }

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

    // required int32 matrixId = 1;
    /**
     * required int32 matrixId = 1;
     */
    boolean hasMatrixId();
    /**
     * required int32 matrixId = 1;
     */
    int getMatrixId();

    // repeated int32 partIds = 2;
    /**
     * repeated int32 partIds = 2;
     */
    java.util.List getPartIdsList();
    /**
     * repeated int32 partIds = 2;
     */
    int getPartIdsCount();
    /**
     * repeated int32 partIds = 2;
     */
    int getPartIds(int index);

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

    // required string formatClassName = 4;
    /**
     * required string formatClassName = 4;
     */
    boolean hasFormatClassName();
    /**
     * required string formatClassName = 4;
     */
    java.lang.String getFormatClassName();
    /**
     * required string formatClassName = 4;
     */
    com.google.protobuf.ByteString
        getFormatClassNameBytes();
  }
  /**
   * Protobuf type {@code PSMatrixLoadContextProto}
   */
  public static final class PSMatrixLoadContextProto extends
      com.google.protobuf.GeneratedMessage
      implements PSMatrixLoadContextProtoOrBuilder {
    // Use PSMatrixLoadContextProto.newBuilder() to construct.
    private PSMatrixLoadContextProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSMatrixLoadContextProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSMatrixLoadContextProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSMatrixLoadContextProto(
        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;
              matrixId_ = input.readInt32();
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                partIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              partIds_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                partIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                partIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 26: {
              bitField0_ |= 0x00000002;
              loadPath_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000004;
              formatClassName_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          partIds_ = java.util.Collections.unmodifiableList(partIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixLoadContextProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixLoadContextProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 matrixId = 1;
    public static final int MATRIXID_FIELD_NUMBER = 1;
    private int matrixId_;
    /**
     * required int32 matrixId = 1;
     */
    public boolean hasMatrixId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 matrixId = 1;
     */
    public int getMatrixId() {
      return matrixId_;
    }

    // repeated int32 partIds = 2;
    public static final int PARTIDS_FIELD_NUMBER = 2;
    private java.util.List partIds_;
    /**
     * repeated int32 partIds = 2;
     */
    public java.util.List
        getPartIdsList() {
      return partIds_;
    }
    /**
     * repeated int32 partIds = 2;
     */
    public int getPartIdsCount() {
      return partIds_.size();
    }
    /**
     * repeated int32 partIds = 2;
     */
    public int getPartIds(int index) {
      return partIds_.get(index);
    }

    // required string loadPath = 3;
    public static final int LOADPATH_FIELD_NUMBER = 3;
    private java.lang.Object loadPath_;
    /**
     * required string loadPath = 3;
     */
    public boolean hasLoadPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string loadPath = 3;
     */
    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 = 3;
     */
    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;
      }
    }

    // required string formatClassName = 4;
    public static final int FORMATCLASSNAME_FIELD_NUMBER = 4;
    private java.lang.Object formatClassName_;
    /**
     * required string formatClassName = 4;
     */
    public boolean hasFormatClassName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required string formatClassName = 4;
     */
    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 = 4;
     */
    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;
      }
    }

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

      if (!hasMatrixId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLoadPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFormatClassName()) {
        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, matrixId_);
      }
      for (int i = 0; i < partIds_.size(); i++) {
        output.writeInt32(2, partIds_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(3, getLoadPathBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(4, getFormatClassNameBytes());
      }
      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, matrixId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < partIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(partIds_.get(i));
        }
        size += dataSize;
        size += 1 * getPartIdsList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getLoadPathBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getFormatClassNameBytes());
      }
      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.PSMasterServiceProtos.PSMatrixLoadContextProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto) obj;

      boolean result = true;
      result = result && (hasMatrixId() == other.hasMatrixId());
      if (hasMatrixId()) {
        result = result && (getMatrixId()
            == other.getMatrixId());
      }
      result = result && getPartIdsList()
          .equals(other.getPartIdsList());
      result = result && (hasLoadPath() == other.hasLoadPath());
      if (hasLoadPath()) {
        result = result && getLoadPath()
            .equals(other.getLoadPath());
      }
      result = result && (hasFormatClassName() == other.hasFormatClassName());
      if (hasFormatClassName()) {
        result = result && getFormatClassName()
            .equals(other.getFormatClassName());
      }
      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 (hasMatrixId()) {
        hash = (37 * hash) + MATRIXID_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixId();
      }
      if (getPartIdsCount() > 0) {
        hash = (37 * hash) + PARTIDS_FIELD_NUMBER;
        hash = (53 * hash) + getPartIdsList().hashCode();
      }
      if (hasLoadPath()) {
        hash = (37 * hash) + LOADPATH_FIELD_NUMBER;
        hash = (53 * hash) + getLoadPath().hashCode();
      }
      if (hasFormatClassName()) {
        hash = (37 * hash) + FORMATCLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getFormatClassName().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto 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.PSMasterServiceProtos.PSMatrixLoadContextProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto 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.PSMasterServiceProtos.PSMatrixLoadContextProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto 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.PSMasterServiceProtos.PSMatrixLoadContextProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto 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.PSMasterServiceProtos.PSMatrixLoadContextProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto 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.PSMasterServiceProtos.PSMatrixLoadContextProto 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 PSMatrixLoadContextProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixLoadContextProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSMatrixLoadContextProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.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();
        matrixId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        partIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        loadPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        formatClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixId_ = matrixId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          partIds_ = java.util.Collections.unmodifiableList(partIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.partIds_ = partIds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.loadPath_ = loadPath_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.formatClassName_ = formatClassName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto.getDefaultInstance()) return this;
        if (other.hasMatrixId()) {
          setMatrixId(other.getMatrixId());
        }
        if (!other.partIds_.isEmpty()) {
          if (partIds_.isEmpty()) {
            partIds_ = other.partIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePartIdsIsMutable();
            partIds_.addAll(other.partIds_);
          }
          onChanged();
        }
        if (other.hasLoadPath()) {
          bitField0_ |= 0x00000004;
          loadPath_ = other.loadPath_;
          onChanged();
        }
        if (other.hasFormatClassName()) {
          bitField0_ |= 0x00000008;
          formatClassName_ = other.formatClassName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMatrixId()) {
          
          return false;
        }
        if (!hasLoadPath()) {
          
          return false;
        }
        if (!hasFormatClassName()) {
          
          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.PSMasterServiceProtos.PSMatrixLoadContextProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatrixLoadContextProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 matrixId = 1;
      private int matrixId_ ;
      /**
       * required int32 matrixId = 1;
       */
      public boolean hasMatrixId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 matrixId = 1;
       */
      public int getMatrixId() {
        return matrixId_;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder setMatrixId(int value) {
        bitField0_ |= 0x00000001;
        matrixId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder clearMatrixId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixId_ = 0;
        onChanged();
        return this;
      }

      // repeated int32 partIds = 2;
      private java.util.List partIds_ = java.util.Collections.emptyList();
      private void ensurePartIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          partIds_ = new java.util.ArrayList(partIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated int32 partIds = 2;
       */
      public java.util.List
          getPartIdsList() {
        return java.util.Collections.unmodifiableList(partIds_);
      }
      /**
       * repeated int32 partIds = 2;
       */
      public int getPartIdsCount() {
        return partIds_.size();
      }
      /**
       * repeated int32 partIds = 2;
       */
      public int getPartIds(int index) {
        return partIds_.get(index);
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder setPartIds(
          int index, int value) {
        ensurePartIdsIsMutable();
        partIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder addPartIds(int value) {
        ensurePartIdsIsMutable();
        partIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder addAllPartIds(
          java.lang.Iterable values) {
        ensurePartIdsIsMutable();
        super.addAll(values, partIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 partIds = 2;
       */
      public Builder clearPartIds() {
        partIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // required string loadPath = 3;
      private java.lang.Object loadPath_ = "";
      /**
       * required string loadPath = 3;
       */
      public boolean hasLoadPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required string loadPath = 3;
       */
      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 = 3;
       */
      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 = 3;
       */
      public Builder setLoadPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        loadPath_ = value;
        onChanged();
        return this;
      }
      /**
       * required string loadPath = 3;
       */
      public Builder clearLoadPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        loadPath_ = getDefaultInstance().getLoadPath();
        onChanged();
        return this;
      }
      /**
       * required string loadPath = 3;
       */
      public Builder setLoadPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        loadPath_ = value;
        onChanged();
        return this;
      }

      // required string formatClassName = 4;
      private java.lang.Object formatClassName_ = "";
      /**
       * required string formatClassName = 4;
       */
      public boolean hasFormatClassName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required string formatClassName = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      public Builder setFormatClassName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        formatClassName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 4;
       */
      public Builder clearFormatClassName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        formatClassName_ = getDefaultInstance().getFormatClassName();
        onChanged();
        return this;
      }
      /**
       * required string formatClassName = 4;
       */
      public Builder setFormatClassNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        formatClassName_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSMatrixLoadContextProto)
    }

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

    // @@protoc_insertion_point(class_scope:PSMatrixLoadContextProto)
  }

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

    // required int32 matrixId = 1;
    /**
     * required int32 matrixId = 1;
     */
    boolean hasMatrixId();
    /**
     * required int32 matrixId = 1;
     */
    int getMatrixId();

    // required int32 partId = 2;
    /**
     * required int32 partId = 2;
     */
    boolean hasPartId();
    /**
     * required int32 partId = 2;
     */
    int getPartId();

    // required .PSIdProto psId = 3;
    /**
     * required .PSIdProto psId = 3;
     */
    boolean hasPsId();
    /**
     * required .PSIdProto psId = 3;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId();
    /**
     * required .PSIdProto psId = 3;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder();

    // required .LocationProto loc = 4;
    /**
     * required .LocationProto loc = 4;
     */
    boolean hasLoc();
    /**
     * required .LocationProto loc = 4;
     */
    com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLoc();
    /**
     * required .LocationProto loc = 4;
     */
    com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocOrBuilder();
  }
  /**
   * Protobuf type {@code RecoverPartKeyProto}
   */
  public static final class RecoverPartKeyProto extends
      com.google.protobuf.GeneratedMessage
      implements RecoverPartKeyProtoOrBuilder {
    // Use RecoverPartKeyProto.newBuilder() to construct.
    private RecoverPartKeyProto(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RecoverPartKeyProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public RecoverPartKeyProto getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private RecoverPartKeyProto(
        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;
              matrixId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              partId_ = input.readInt32();
              break;
            }
            case 26: {
              com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = psId_.toBuilder();
              }
              psId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psId_);
                psId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = loc_.toBuilder();
              }
              loc_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.LocationProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(loc_);
                loc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_RecoverPartKeyProto_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_RecoverPartKeyProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 matrixId = 1;
    public static final int MATRIXID_FIELD_NUMBER = 1;
    private int matrixId_;
    /**
     * required int32 matrixId = 1;
     */
    public boolean hasMatrixId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 matrixId = 1;
     */
    public int getMatrixId() {
      return matrixId_;
    }

    // required int32 partId = 2;
    public static final int PARTID_FIELD_NUMBER = 2;
    private int partId_;
    /**
     * required int32 partId = 2;
     */
    public boolean hasPartId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 partId = 2;
     */
    public int getPartId() {
      return partId_;
    }

    // required .PSIdProto psId = 3;
    public static final int PSID_FIELD_NUMBER = 3;
    private com.tencent.angel.protobuf.generated.MLProtos.PSIdProto psId_;
    /**
     * required .PSIdProto psId = 3;
     */
    public boolean hasPsId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required .PSIdProto psId = 3;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId() {
      return psId_;
    }
    /**
     * required .PSIdProto psId = 3;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder() {
      return psId_;
    }

    // required .LocationProto loc = 4;
    public static final int LOC_FIELD_NUMBER = 4;
    private com.tencent.angel.protobuf.generated.MLProtos.LocationProto loc_;
    /**
     * required .LocationProto loc = 4;
     */
    public boolean hasLoc() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required .LocationProto loc = 4;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLoc() {
      return loc_;
    }
    /**
     * required .LocationProto loc = 4;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocOrBuilder() {
      return loc_;
    }

    private void initFields() {
      matrixId_ = 0;
      partId_ = 0;
      psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
      loc_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMatrixId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPartId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPsId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLoc()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getLoc().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, matrixId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, partId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, psId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, loc_);
      }
      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, matrixId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, partId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, psId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, loc_);
      }
      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.PSMasterServiceProtos.RecoverPartKeyProto)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto) obj;

      boolean result = true;
      result = result && (hasMatrixId() == other.hasMatrixId());
      if (hasMatrixId()) {
        result = result && (getMatrixId()
            == other.getMatrixId());
      }
      result = result && (hasPartId() == other.hasPartId());
      if (hasPartId()) {
        result = result && (getPartId()
            == other.getPartId());
      }
      result = result && (hasPsId() == other.hasPsId());
      if (hasPsId()) {
        result = result && getPsId()
            .equals(other.getPsId());
      }
      result = result && (hasLoc() == other.hasLoc());
      if (hasLoc()) {
        result = result && getLoc()
            .equals(other.getLoc());
      }
      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 (hasMatrixId()) {
        hash = (37 * hash) + MATRIXID_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixId();
      }
      if (hasPartId()) {
        hash = (37 * hash) + PARTID_FIELD_NUMBER;
        hash = (53 * hash) + getPartId();
      }
      if (hasPsId()) {
        hash = (37 * hash) + PSID_FIELD_NUMBER;
        hash = (53 * hash) + getPsId().hashCode();
      }
      if (hasLoc()) {
        hash = (37 * hash) + LOC_FIELD_NUMBER;
        hash = (53 * hash) + getLoc().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto 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.PSMasterServiceProtos.RecoverPartKeyProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto 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.PSMasterServiceProtos.RecoverPartKeyProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto 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.PSMasterServiceProtos.RecoverPartKeyProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto 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.PSMasterServiceProtos.RecoverPartKeyProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto 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.PSMasterServiceProtos.RecoverPartKeyProto 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 RecoverPartKeyProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_RecoverPartKeyProto_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_RecoverPartKeyProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        matrixId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        partId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (psIdBuilder_ == null) {
          psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
        } else {
          psIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (locBuilder_ == null) {
          loc_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
        } else {
          locBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matrixId_ = matrixId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.partId_ = partId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (psIdBuilder_ == null) {
          result.psId_ = psId_;
        } else {
          result.psId_ = psIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (locBuilder_ == null) {
          result.loc_ = loc_;
        } else {
          result.loc_ = locBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto.getDefaultInstance()) return this;
        if (other.hasMatrixId()) {
          setMatrixId(other.getMatrixId());
        }
        if (other.hasPartId()) {
          setPartId(other.getPartId());
        }
        if (other.hasPsId()) {
          mergePsId(other.getPsId());
        }
        if (other.hasLoc()) {
          mergeLoc(other.getLoc());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMatrixId()) {
          
          return false;
        }
        if (!hasPartId()) {
          
          return false;
        }
        if (!hasPsId()) {
          
          return false;
        }
        if (!hasLoc()) {
          
          return false;
        }
        if (!getPsId().isInitialized()) {
          
          return false;
        }
        if (!getLoc().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.PSMasterServiceProtos.RecoverPartKeyProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.RecoverPartKeyProto) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 matrixId = 1;
      private int matrixId_ ;
      /**
       * required int32 matrixId = 1;
       */
      public boolean hasMatrixId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 matrixId = 1;
       */
      public int getMatrixId() {
        return matrixId_;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder setMatrixId(int value) {
        bitField0_ |= 0x00000001;
        matrixId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 matrixId = 1;
       */
      public Builder clearMatrixId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matrixId_ = 0;
        onChanged();
        return this;
      }

      // required int32 partId = 2;
      private int partId_ ;
      /**
       * required int32 partId = 2;
       */
      public boolean hasPartId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 partId = 2;
       */
      public int getPartId() {
        return partId_;
      }
      /**
       * required int32 partId = 2;
       */
      public Builder setPartId(int value) {
        bitField0_ |= 0x00000002;
        partId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 partId = 2;
       */
      public Builder clearPartId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partId_ = 0;
        onChanged();
        return this;
      }

      // required .PSIdProto psId = 3;
      private com.tencent.angel.protobuf.generated.MLProtos.PSIdProto psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder> psIdBuilder_;
      /**
       * required .PSIdProto psId = 3;
       */
      public boolean hasPsId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId() {
        if (psIdBuilder_ == null) {
          return psId_;
        } else {
          return psIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public Builder setPsId(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto value) {
        if (psIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psId_ = value;
          onChanged();
        } else {
          psIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public Builder setPsId(
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder builderForValue) {
        if (psIdBuilder_ == null) {
          psId_ = builderForValue.build();
          onChanged();
        } else {
          psIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public Builder mergePsId(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto value) {
        if (psIdBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              psId_ != com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance()) {
            psId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.newBuilder(psId_).mergeFrom(value).buildPartial();
          } else {
            psId_ = value;
          }
          onChanged();
        } else {
          psIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public Builder clearPsId() {
        if (psIdBuilder_ == null) {
          psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
          onChanged();
        } else {
          psIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder getPsIdBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPsIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSIdProto psId = 3;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder() {
        if (psIdBuilder_ != null) {
          return psIdBuilder_.getMessageOrBuilder();
        } else {
          return psId_;
        }
      }
      /**
       * required .PSIdProto psId = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder> 
          getPsIdFieldBuilder() {
        if (psIdBuilder_ == null) {
          psIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder>(
                  psId_,
                  getParentForChildren(),
                  isClean());
          psId_ = null;
        }
        return psIdBuilder_;
      }

      // required .LocationProto loc = 4;
      private com.tencent.angel.protobuf.generated.MLProtos.LocationProto loc_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder> locBuilder_;
      /**
       * required .LocationProto loc = 4;
       */
      public boolean hasLoc() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required .LocationProto loc = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLoc() {
        if (locBuilder_ == null) {
          return loc_;
        } else {
          return locBuilder_.getMessage();
        }
      }
      /**
       * required .LocationProto loc = 4;
       */
      public Builder setLoc(com.tencent.angel.protobuf.generated.MLProtos.LocationProto value) {
        if (locBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          loc_ = value;
          onChanged();
        } else {
          locBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * required .LocationProto loc = 4;
       */
      public Builder setLoc(
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder builderForValue) {
        if (locBuilder_ == null) {
          loc_ = builderForValue.build();
          onChanged();
        } else {
          locBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * required .LocationProto loc = 4;
       */
      public Builder mergeLoc(com.tencent.angel.protobuf.generated.MLProtos.LocationProto value) {
        if (locBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              loc_ != com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance()) {
            loc_ =
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto.newBuilder(loc_).mergeFrom(value).buildPartial();
          } else {
            loc_ = value;
          }
          onChanged();
        } else {
          locBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * required .LocationProto loc = 4;
       */
      public Builder clearLoc() {
        if (locBuilder_ == null) {
          loc_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
          onChanged();
        } else {
          locBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * required .LocationProto loc = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder getLocBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLocFieldBuilder().getBuilder();
      }
      /**
       * required .LocationProto loc = 4;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocOrBuilder() {
        if (locBuilder_ != null) {
          return locBuilder_.getMessageOrBuilder();
        } else {
          return loc_;
        }
      }
      /**
       * required .LocationProto loc = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder> 
          getLocFieldBuilder() {
        if (locBuilder_ == null) {
          locBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder>(
                  loc_,
                  getParentForChildren(),
                  isClean());
          loc_ = null;
        }
        return locBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:RecoverPartKeyProto)
    }

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

    // @@protoc_insertion_point(class_scope:RecoverPartKeyProto)
  }

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

    // required int32 totalWorkerGroupNum = 1;
    /**
     * required int32 totalWorkerGroupNum = 1;
     */
    boolean hasTotalWorkerGroupNum();
    /**
     * required int32 totalWorkerGroupNum = 1;
     */
    int getTotalWorkerGroupNum();

    // required int32 activeWorkerGroupNum = 2;
    /**
     * required int32 activeWorkerGroupNum = 2;
     */
    boolean hasActiveWorkerGroupNum();
    /**
     * required int32 activeWorkerGroupNum = 2;
     */
    int getActiveWorkerGroupNum();

    // required int32 totalWorkerNum = 3;
    /**
     * required int32 totalWorkerNum = 3;
     */
    boolean hasTotalWorkerNum();
    /**
     * required int32 totalWorkerNum = 3;
     */
    int getTotalWorkerNum();

    // required int32 activeWorkerNum = 4;
    /**
     * required int32 activeWorkerNum = 4;
     */
    boolean hasActiveWorkerNum();
    /**
     * required int32 activeWorkerNum = 4;
     */
    int getActiveWorkerNum();

    // required int32 totalTaskNum = 5;
    /**
     * required int32 totalTaskNum = 5;
     */
    boolean hasTotalTaskNum();
    /**
     * required int32 totalTaskNum = 5;
     */
    int getTotalTaskNum();

    // required int32 activeTaskNum = 6;
    /**
     * required int32 activeTaskNum = 6;
     */
    boolean hasActiveTaskNum();
    /**
     * required int32 activeTaskNum = 6;
     */
    int getActiveTaskNum();
  }
  /**
   * Protobuf type {@code ExecuteUnitDesc}
   */
  public static final class ExecuteUnitDesc extends
      com.google.protobuf.GeneratedMessage
      implements ExecuteUnitDescOrBuilder {
    // Use ExecuteUnitDesc.newBuilder() to construct.
    private ExecuteUnitDesc(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ExecuteUnitDesc(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ExecuteUnitDesc getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ExecuteUnitDesc(
        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;
              totalWorkerGroupNum_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              activeWorkerGroupNum_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              totalWorkerNum_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              activeWorkerNum_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              totalTaskNum_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              activeTaskNum_ = 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.PSMasterServiceProtos.internal_static_ExecuteUnitDesc_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_ExecuteUnitDesc_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 totalWorkerGroupNum = 1;
    public static final int TOTALWORKERGROUPNUM_FIELD_NUMBER = 1;
    private int totalWorkerGroupNum_;
    /**
     * required int32 totalWorkerGroupNum = 1;
     */
    public boolean hasTotalWorkerGroupNum() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 totalWorkerGroupNum = 1;
     */
    public int getTotalWorkerGroupNum() {
      return totalWorkerGroupNum_;
    }

    // required int32 activeWorkerGroupNum = 2;
    public static final int ACTIVEWORKERGROUPNUM_FIELD_NUMBER = 2;
    private int activeWorkerGroupNum_;
    /**
     * required int32 activeWorkerGroupNum = 2;
     */
    public boolean hasActiveWorkerGroupNum() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 activeWorkerGroupNum = 2;
     */
    public int getActiveWorkerGroupNum() {
      return activeWorkerGroupNum_;
    }

    // required int32 totalWorkerNum = 3;
    public static final int TOTALWORKERNUM_FIELD_NUMBER = 3;
    private int totalWorkerNum_;
    /**
     * required int32 totalWorkerNum = 3;
     */
    public boolean hasTotalWorkerNum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 totalWorkerNum = 3;
     */
    public int getTotalWorkerNum() {
      return totalWorkerNum_;
    }

    // required int32 activeWorkerNum = 4;
    public static final int ACTIVEWORKERNUM_FIELD_NUMBER = 4;
    private int activeWorkerNum_;
    /**
     * required int32 activeWorkerNum = 4;
     */
    public boolean hasActiveWorkerNum() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required int32 activeWorkerNum = 4;
     */
    public int getActiveWorkerNum() {
      return activeWorkerNum_;
    }

    // required int32 totalTaskNum = 5;
    public static final int TOTALTASKNUM_FIELD_NUMBER = 5;
    private int totalTaskNum_;
    /**
     * required int32 totalTaskNum = 5;
     */
    public boolean hasTotalTaskNum() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * required int32 totalTaskNum = 5;
     */
    public int getTotalTaskNum() {
      return totalTaskNum_;
    }

    // required int32 activeTaskNum = 6;
    public static final int ACTIVETASKNUM_FIELD_NUMBER = 6;
    private int activeTaskNum_;
    /**
     * required int32 activeTaskNum = 6;
     */
    public boolean hasActiveTaskNum() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * required int32 activeTaskNum = 6;
     */
    public int getActiveTaskNum() {
      return activeTaskNum_;
    }

    private void initFields() {
      totalWorkerGroupNum_ = 0;
      activeWorkerGroupNum_ = 0;
      totalWorkerNum_ = 0;
      activeWorkerNum_ = 0;
      totalTaskNum_ = 0;
      activeTaskNum_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasTotalWorkerGroupNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActiveWorkerGroupNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTotalWorkerNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActiveWorkerNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTotalTaskNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActiveTaskNum()) {
        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, totalWorkerGroupNum_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, activeWorkerGroupNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, totalWorkerNum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, activeWorkerNum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, totalTaskNum_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, activeTaskNum_);
      }
      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, totalWorkerGroupNum_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, activeWorkerGroupNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, totalWorkerNum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, activeWorkerNum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, totalTaskNum_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, activeTaskNum_);
      }
      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.PSMasterServiceProtos.ExecuteUnitDesc)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc) obj;

      boolean result = true;
      result = result && (hasTotalWorkerGroupNum() == other.hasTotalWorkerGroupNum());
      if (hasTotalWorkerGroupNum()) {
        result = result && (getTotalWorkerGroupNum()
            == other.getTotalWorkerGroupNum());
      }
      result = result && (hasActiveWorkerGroupNum() == other.hasActiveWorkerGroupNum());
      if (hasActiveWorkerGroupNum()) {
        result = result && (getActiveWorkerGroupNum()
            == other.getActiveWorkerGroupNum());
      }
      result = result && (hasTotalWorkerNum() == other.hasTotalWorkerNum());
      if (hasTotalWorkerNum()) {
        result = result && (getTotalWorkerNum()
            == other.getTotalWorkerNum());
      }
      result = result && (hasActiveWorkerNum() == other.hasActiveWorkerNum());
      if (hasActiveWorkerNum()) {
        result = result && (getActiveWorkerNum()
            == other.getActiveWorkerNum());
      }
      result = result && (hasTotalTaskNum() == other.hasTotalTaskNum());
      if (hasTotalTaskNum()) {
        result = result && (getTotalTaskNum()
            == other.getTotalTaskNum());
      }
      result = result && (hasActiveTaskNum() == other.hasActiveTaskNum());
      if (hasActiveTaskNum()) {
        result = result && (getActiveTaskNum()
            == other.getActiveTaskNum());
      }
      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 (hasTotalWorkerGroupNum()) {
        hash = (37 * hash) + TOTALWORKERGROUPNUM_FIELD_NUMBER;
        hash = (53 * hash) + getTotalWorkerGroupNum();
      }
      if (hasActiveWorkerGroupNum()) {
        hash = (37 * hash) + ACTIVEWORKERGROUPNUM_FIELD_NUMBER;
        hash = (53 * hash) + getActiveWorkerGroupNum();
      }
      if (hasTotalWorkerNum()) {
        hash = (37 * hash) + TOTALWORKERNUM_FIELD_NUMBER;
        hash = (53 * hash) + getTotalWorkerNum();
      }
      if (hasActiveWorkerNum()) {
        hash = (37 * hash) + ACTIVEWORKERNUM_FIELD_NUMBER;
        hash = (53 * hash) + getActiveWorkerNum();
      }
      if (hasTotalTaskNum()) {
        hash = (37 * hash) + TOTALTASKNUM_FIELD_NUMBER;
        hash = (53 * hash) + getTotalTaskNum();
      }
      if (hasActiveTaskNum()) {
        hash = (37 * hash) + ACTIVETASKNUM_FIELD_NUMBER;
        hash = (53 * hash) + getActiveTaskNum();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc 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.PSMasterServiceProtos.ExecuteUnitDesc parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc 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.PSMasterServiceProtos.ExecuteUnitDesc parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc 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.PSMasterServiceProtos.ExecuteUnitDesc parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc 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.PSMasterServiceProtos.ExecuteUnitDesc parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc 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.PSMasterServiceProtos.ExecuteUnitDesc 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 ExecuteUnitDesc}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_ExecuteUnitDesc_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_ExecuteUnitDesc_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.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();
        totalWorkerGroupNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        activeWorkerGroupNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        totalWorkerNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        activeWorkerNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        totalTaskNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        activeTaskNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.totalWorkerGroupNum_ = totalWorkerGroupNum_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.activeWorkerGroupNum_ = activeWorkerGroupNum_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.totalWorkerNum_ = totalWorkerNum_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.activeWorkerNum_ = activeWorkerNum_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.totalTaskNum_ = totalTaskNum_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.activeTaskNum_ = activeTaskNum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance()) return this;
        if (other.hasTotalWorkerGroupNum()) {
          setTotalWorkerGroupNum(other.getTotalWorkerGroupNum());
        }
        if (other.hasActiveWorkerGroupNum()) {
          setActiveWorkerGroupNum(other.getActiveWorkerGroupNum());
        }
        if (other.hasTotalWorkerNum()) {
          setTotalWorkerNum(other.getTotalWorkerNum());
        }
        if (other.hasActiveWorkerNum()) {
          setActiveWorkerNum(other.getActiveWorkerNum());
        }
        if (other.hasTotalTaskNum()) {
          setTotalTaskNum(other.getTotalTaskNum());
        }
        if (other.hasActiveTaskNum()) {
          setActiveTaskNum(other.getActiveTaskNum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasTotalWorkerGroupNum()) {
          
          return false;
        }
        if (!hasActiveWorkerGroupNum()) {
          
          return false;
        }
        if (!hasTotalWorkerNum()) {
          
          return false;
        }
        if (!hasActiveWorkerNum()) {
          
          return false;
        }
        if (!hasTotalTaskNum()) {
          
          return false;
        }
        if (!hasActiveTaskNum()) {
          
          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.PSMasterServiceProtos.ExecuteUnitDesc parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 totalWorkerGroupNum = 1;
      private int totalWorkerGroupNum_ ;
      /**
       * required int32 totalWorkerGroupNum = 1;
       */
      public boolean hasTotalWorkerGroupNum() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 totalWorkerGroupNum = 1;
       */
      public int getTotalWorkerGroupNum() {
        return totalWorkerGroupNum_;
      }
      /**
       * required int32 totalWorkerGroupNum = 1;
       */
      public Builder setTotalWorkerGroupNum(int value) {
        bitField0_ |= 0x00000001;
        totalWorkerGroupNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 totalWorkerGroupNum = 1;
       */
      public Builder clearTotalWorkerGroupNum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        totalWorkerGroupNum_ = 0;
        onChanged();
        return this;
      }

      // required int32 activeWorkerGroupNum = 2;
      private int activeWorkerGroupNum_ ;
      /**
       * required int32 activeWorkerGroupNum = 2;
       */
      public boolean hasActiveWorkerGroupNum() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 activeWorkerGroupNum = 2;
       */
      public int getActiveWorkerGroupNum() {
        return activeWorkerGroupNum_;
      }
      /**
       * required int32 activeWorkerGroupNum = 2;
       */
      public Builder setActiveWorkerGroupNum(int value) {
        bitField0_ |= 0x00000002;
        activeWorkerGroupNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 activeWorkerGroupNum = 2;
       */
      public Builder clearActiveWorkerGroupNum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        activeWorkerGroupNum_ = 0;
        onChanged();
        return this;
      }

      // required int32 totalWorkerNum = 3;
      private int totalWorkerNum_ ;
      /**
       * required int32 totalWorkerNum = 3;
       */
      public boolean hasTotalWorkerNum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 totalWorkerNum = 3;
       */
      public int getTotalWorkerNum() {
        return totalWorkerNum_;
      }
      /**
       * required int32 totalWorkerNum = 3;
       */
      public Builder setTotalWorkerNum(int value) {
        bitField0_ |= 0x00000004;
        totalWorkerNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 totalWorkerNum = 3;
       */
      public Builder clearTotalWorkerNum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        totalWorkerNum_ = 0;
        onChanged();
        return this;
      }

      // required int32 activeWorkerNum = 4;
      private int activeWorkerNum_ ;
      /**
       * required int32 activeWorkerNum = 4;
       */
      public boolean hasActiveWorkerNum() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required int32 activeWorkerNum = 4;
       */
      public int getActiveWorkerNum() {
        return activeWorkerNum_;
      }
      /**
       * required int32 activeWorkerNum = 4;
       */
      public Builder setActiveWorkerNum(int value) {
        bitField0_ |= 0x00000008;
        activeWorkerNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 activeWorkerNum = 4;
       */
      public Builder clearActiveWorkerNum() {
        bitField0_ = (bitField0_ & ~0x00000008);
        activeWorkerNum_ = 0;
        onChanged();
        return this;
      }

      // required int32 totalTaskNum = 5;
      private int totalTaskNum_ ;
      /**
       * required int32 totalTaskNum = 5;
       */
      public boolean hasTotalTaskNum() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * required int32 totalTaskNum = 5;
       */
      public int getTotalTaskNum() {
        return totalTaskNum_;
      }
      /**
       * required int32 totalTaskNum = 5;
       */
      public Builder setTotalTaskNum(int value) {
        bitField0_ |= 0x00000010;
        totalTaskNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 totalTaskNum = 5;
       */
      public Builder clearTotalTaskNum() {
        bitField0_ = (bitField0_ & ~0x00000010);
        totalTaskNum_ = 0;
        onChanged();
        return this;
      }

      // required int32 activeTaskNum = 6;
      private int activeTaskNum_ ;
      /**
       * required int32 activeTaskNum = 6;
       */
      public boolean hasActiveTaskNum() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * required int32 activeTaskNum = 6;
       */
      public int getActiveTaskNum() {
        return activeTaskNum_;
      }
      /**
       * required int32 activeTaskNum = 6;
       */
      public Builder setActiveTaskNum(int value) {
        bitField0_ |= 0x00000020;
        activeTaskNum_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 activeTaskNum = 6;
       */
      public Builder clearActiveTaskNum() {
        bitField0_ = (bitField0_ & ~0x00000020);
        activeTaskNum_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ExecuteUnitDesc)
    }

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

    // @@protoc_insertion_point(class_scope:ExecuteUnitDesc)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required .LocationProto location = 2;
    /**
     * required .LocationProto location = 2;
     */
    boolean hasLocation();
    /**
     * required .LocationProto location = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLocation();
    /**
     * required .LocationProto location = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocationOrBuilder();
  }
  /**
   * Protobuf type {@code PSRegisterRequest}
   */
  public static final class PSRegisterRequest extends
      com.google.protobuf.GeneratedMessage
      implements PSRegisterRequestOrBuilder {
    // Use PSRegisterRequest.newBuilder() to construct.
    private PSRegisterRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSRegisterRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSRegisterRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSRegisterRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.LocationProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = 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.PSMasterServiceProtos.internal_static_PSRegisterRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

    // required .LocationProto location = 2;
    public static final int LOCATION_FIELD_NUMBER = 2;
    private com.tencent.angel.protobuf.generated.MLProtos.LocationProto location_;
    /**
     * required .LocationProto location = 2;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .LocationProto location = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLocation() {
      return location_;
    }
    /**
     * required .LocationProto location = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocationOrBuilder() {
      return location_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLocation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getLocation().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, location_);
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, location_);
      }
      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.PSMasterServiceProtos.PSRegisterRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasLocation() == other.hasLocation());
      if (hasLocation()) {
        result = result && getLocation()
            .equals(other.getLocation());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasLocation()) {
        hash = (37 * hash) + LOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getLocation().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest 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.PSMasterServiceProtos.PSRegisterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest 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.PSMasterServiceProtos.PSRegisterRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest 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.PSMasterServiceProtos.PSRegisterRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest 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.PSMasterServiceProtos.PSRegisterRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest 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.PSMasterServiceProtos.PSRegisterRequest 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 PSRegisterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (locationBuilder_ == null) {
          location_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
        } else {
          locationBuilder_.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.PSMasterServiceProtos.internal_static_PSRegisterRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (locationBuilder_ == null) {
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasLocation()) {
          
          return false;
        }
        if (!getPsAttemptId().isInitialized()) {
          
          return false;
        }
        if (!getLocation().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.PSMasterServiceProtos.PSRegisterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // required .LocationProto location = 2;
      private com.tencent.angel.protobuf.generated.MLProtos.LocationProto location_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder> locationBuilder_;
      /**
       * required .LocationProto location = 2;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .LocationProto location = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProto getLocation() {
        if (locationBuilder_ == null) {
          return location_;
        } else {
          return locationBuilder_.getMessage();
        }
      }
      /**
       * required .LocationProto location = 2;
       */
      public Builder setLocation(com.tencent.angel.protobuf.generated.MLProtos.LocationProto value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          location_ = value;
          onChanged();
        } else {
          locationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .LocationProto location = 2;
       */
      public Builder setLocation(
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder builderForValue) {
        if (locationBuilder_ == null) {
          location_ = builderForValue.build();
          onChanged();
        } else {
          locationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .LocationProto location = 2;
       */
      public Builder mergeLocation(com.tencent.angel.protobuf.generated.MLProtos.LocationProto value) {
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              location_ != com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance()) {
            location_ =
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto.newBuilder(location_).mergeFrom(value).buildPartial();
          } else {
            location_ = value;
          }
          onChanged();
        } else {
          locationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .LocationProto location = 2;
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = com.tencent.angel.protobuf.generated.MLProtos.LocationProto.getDefaultInstance();
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * required .LocationProto location = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder getLocationBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLocationFieldBuilder().getBuilder();
      }
      /**
       * required .LocationProto location = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder getLocationOrBuilder() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilder();
        } else {
          return location_;
        }
      }
      /**
       * required .LocationProto location = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.LocationProto, com.tencent.angel.protobuf.generated.MLProtos.LocationProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.LocationProtoOrBuilder>(
                  location_,
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSRegisterRequest)
    }

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

    // @@protoc_insertion_point(class_scope:PSRegisterRequest)
  }

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

    // required .PSCommandProto psCommand = 1;
    /**
     * required .PSCommandProto psCommand = 1;
     */
    boolean hasPsCommand();
    /**
     * required .PSCommandProto psCommand = 1;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand();
  }
  /**
   * Protobuf type {@code PSRegisterResponse}
   */
  public static final class PSRegisterResponse extends
      com.google.protobuf.GeneratedMessage
      implements PSRegisterResponseOrBuilder {
    // Use PSRegisterResponse.newBuilder() to construct.
    private PSRegisterResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSRegisterResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSRegisterResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSCommandProto psCommand = 1;
    public static final int PSCOMMAND_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto psCommand_;
    /**
     * required .PSCommandProto psCommand = 1;
     */
    public boolean hasPsCommand() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSCommandProto psCommand = 1;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand() {
      return psCommand_;
    }

    private void initFields() {
      psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

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

      boolean result = true;
      result = result && (hasPsCommand() == other.hasPsCommand());
      if (hasPsCommand()) {
        result = result &&
            (getPsCommand() == other.getPsCommand());
      }
      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 (hasPsCommand()) {
        hash = (37 * hash) + PSCOMMAND_FIELD_NUMBER;
        hash = (53 * hash) + hashEnum(getPsCommand());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse 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.PSMasterServiceProtos.PSRegisterResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse 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.PSMasterServiceProtos.PSRegisterResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse 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.PSMasterServiceProtos.PSRegisterResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse 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.PSMasterServiceProtos.PSRegisterResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse 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.PSMasterServiceProtos.PSRegisterResponse 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 PSRegisterResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSRegisterResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.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();
        psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
        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.PSMasterServiceProtos.internal_static_PSRegisterResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance()) return this;
        if (other.hasPsCommand()) {
          setPsCommand(other.getPsCommand());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsCommand()) {
          
          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.PSMasterServiceProtos.PSRegisterResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSCommandProto psCommand = 1;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
      /**
       * required .PSCommandProto psCommand = 1;
       */
      public boolean hasPsCommand() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSCommandProto psCommand = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto getPsCommand() {
        return psCommand_;
      }
      /**
       * required .PSCommandProto psCommand = 1;
       */
      public Builder setPsCommand(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        psCommand_ = value;
        onChanged();
        return this;
      }
      /**
       * required .PSCommandProto psCommand = 1;
       */
      public Builder clearPsCommand() {
        bitField0_ = (bitField0_ & ~0x00000001);
        psCommand_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSCommandProto.PSCOMMAND_OK;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSRegisterResponse)
    }

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

    // @@protoc_insertion_point(class_scope:PSRegisterResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();
  }
  /**
   * Protobuf type {@code PSDoneRequest}
   */
  public static final class PSDoneRequest extends
      com.google.protobuf.GeneratedMessage
      implements PSDoneRequestOrBuilder {
    // Use PSDoneRequest.newBuilder() to construct.
    private PSDoneRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSDoneRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSDoneRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSDoneRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = 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.PSMasterServiceProtos.internal_static_PSDoneRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().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, psAttemptId_);
      }
      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, psAttemptId_);
      }
      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.PSMasterServiceProtos.PSDoneRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest 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.PSMasterServiceProtos.PSDoneRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest 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.PSMasterServiceProtos.PSDoneRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest 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.PSMasterServiceProtos.PSDoneRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest 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.PSMasterServiceProtos.PSDoneRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest 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.PSMasterServiceProtos.PSDoneRequest 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 PSDoneRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.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.PSMasterServiceProtos.internal_static_PSDoneRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!getPsAttemptId().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.PSMasterServiceProtos.PSDoneRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PSDoneRequest)
    }

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

    // @@protoc_insertion_point(class_scope:PSDoneRequest)
  }

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

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

    public PSDoneResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSDoneResponse(
        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.PSMasterServiceProtos.internal_static_PSDoneResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSDoneResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSDoneResponse(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.PSMasterServiceProtos.PSDoneResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse) 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.PSMasterServiceProtos.PSDoneResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse 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.PSMasterServiceProtos.PSDoneResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse 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.PSMasterServiceProtos.PSDoneResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse 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.PSMasterServiceProtos.PSDoneResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse 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.PSMasterServiceProtos.PSDoneResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse 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.PSMasterServiceProtos.PSDoneResponse 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 PSDoneResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSDoneResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.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.PSMasterServiceProtos.internal_static_PSDoneResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.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.PSMasterServiceProtos.PSDoneResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSDoneResponse)
    }

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

    // @@protoc_insertion_point(class_scope:PSDoneResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required string msg = 2;
    /**
     * required string msg = 2;
     */
    boolean hasMsg();
    /**
     * required string msg = 2;
     */
    java.lang.String getMsg();
    /**
     * required string msg = 2;
     */
    com.google.protobuf.ByteString
        getMsgBytes();
  }
  /**
   * Protobuf type {@code PSErrorRequest}
   */
  public static final class PSErrorRequest extends
      com.google.protobuf.GeneratedMessage
      implements PSErrorRequestOrBuilder {
    // Use PSErrorRequest.newBuilder() to construct.
    private PSErrorRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PSErrorRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PSErrorRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSErrorRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              msg_ = 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.PSMasterServiceProtos.internal_static_PSErrorRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

    // required string msg = 2;
    public static final int MSG_FIELD_NUMBER = 2;
    private java.lang.Object msg_;
    /**
     * required string msg = 2;
     */
    public boolean hasMsg() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string msg = 2;
     */
    public java.lang.String getMsg() {
      java.lang.Object ref = msg_;
      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()) {
          msg_ = s;
        }
        return s;
      }
    }
    /**
     * required string msg = 2;
     */
    public com.google.protobuf.ByteString
        getMsgBytes() {
      java.lang.Object ref = msg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        msg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMsg()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getMsgBytes());
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getMsgBytes());
      }
      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.PSMasterServiceProtos.PSErrorRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasMsg() == other.hasMsg());
      if (hasMsg()) {
        result = result && getMsg()
            .equals(other.getMsg());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasMsg()) {
        hash = (37 * hash) + MSG_FIELD_NUMBER;
        hash = (53 * hash) + getMsg().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest 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.PSMasterServiceProtos.PSErrorRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest 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.PSMasterServiceProtos.PSErrorRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest 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.PSMasterServiceProtos.PSErrorRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest 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.PSMasterServiceProtos.PSErrorRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest 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.PSMasterServiceProtos.PSErrorRequest 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 PSErrorRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        msg_ = "";
        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.PSMasterServiceProtos.internal_static_PSErrorRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.msg_ = msg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasMsg()) {
          bitField0_ |= 0x00000002;
          msg_ = other.msg_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasMsg()) {
          
          return false;
        }
        if (!getPsAttemptId().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.PSMasterServiceProtos.PSErrorRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // required string msg = 2;
      private java.lang.Object msg_ = "";
      /**
       * required string msg = 2;
       */
      public boolean hasMsg() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string msg = 2;
       */
      public java.lang.String getMsg() {
        java.lang.Object ref = msg_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          msg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string msg = 2;
       */
      public com.google.protobuf.ByteString
          getMsgBytes() {
        java.lang.Object ref = msg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          msg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string msg = 2;
       */
      public Builder setMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        msg_ = value;
        onChanged();
        return this;
      }
      /**
       * required string msg = 2;
       */
      public Builder clearMsg() {
        bitField0_ = (bitField0_ & ~0x00000002);
        msg_ = getDefaultInstance().getMsg();
        onChanged();
        return this;
      }
      /**
       * required string msg = 2;
       */
      public Builder setMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        msg_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSErrorRequest)
    }

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

    // @@protoc_insertion_point(class_scope:PSErrorRequest)
  }

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

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

    public PSErrorResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PSErrorResponse(
        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.PSMasterServiceProtos.internal_static_PSErrorResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PSErrorResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PSErrorResponse(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.PSMasterServiceProtos.PSErrorResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse) 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.PSMasterServiceProtos.PSErrorResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse 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.PSMasterServiceProtos.PSErrorResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse 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.PSMasterServiceProtos.PSErrorResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse 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.PSMasterServiceProtos.PSErrorResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse 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.PSMasterServiceProtos.PSErrorResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse 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.PSMasterServiceProtos.PSErrorResponse 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 PSErrorResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_PSErrorResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.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.PSMasterServiceProtos.internal_static_PSErrorResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.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.PSMasterServiceProtos.PSErrorResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PSErrorResponse)
    }

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

    // @@protoc_insertion_point(class_scope:PSErrorResponse)
  }

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

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

    public GetExecuteUnitDescRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetExecuteUnitDescRequest(
        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.PSMasterServiceProtos.internal_static_GetExecuteUnitDescRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public GetExecuteUnitDescRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetExecuteUnitDescRequest(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.PSMasterServiceProtos.GetExecuteUnitDescRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest) 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.PSMasterServiceProtos.GetExecuteUnitDescRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest 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.PSMasterServiceProtos.GetExecuteUnitDescRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest 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.PSMasterServiceProtos.GetExecuteUnitDescRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest 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.PSMasterServiceProtos.GetExecuteUnitDescRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest 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.PSMasterServiceProtos.GetExecuteUnitDescRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest 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.PSMasterServiceProtos.GetExecuteUnitDescRequest 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 GetExecuteUnitDescRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.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.PSMasterServiceProtos.internal_static_GetExecuteUnitDescRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.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.PSMasterServiceProtos.GetExecuteUnitDescRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetExecuteUnitDescRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetExecuteUnitDescRequest)
  }

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

    // required .ExecuteUnitDesc executeUnitDesc = 1;
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    boolean hasExecuteUnitDesc();
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc();
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder();
  }
  /**
   * Protobuf type {@code GetExecuteUnitDescResponse}
   */
  public static final class GetExecuteUnitDescResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetExecuteUnitDescResponseOrBuilder {
    // Use GetExecuteUnitDescResponse.newBuilder() to construct.
    private GetExecuteUnitDescResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetExecuteUnitDescResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetExecuteUnitDescResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetExecuteUnitDescResponse(
        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.PSMasterServiceProtos.ExecuteUnitDesc.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = executeUnitDesc_.toBuilder();
              }
              executeUnitDesc_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(executeUnitDesc_);
                executeUnitDesc_ = 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.PSMasterServiceProtos.internal_static_GetExecuteUnitDescResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required .ExecuteUnitDesc executeUnitDesc = 1;
    public static final int EXECUTEUNITDESC_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc executeUnitDesc_;
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    public boolean hasExecuteUnitDesc() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc() {
      return executeUnitDesc_;
    }
    /**
     * required .ExecuteUnitDesc executeUnitDesc = 1;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder() {
      return executeUnitDesc_;
    }

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

      if (!hasExecuteUnitDesc()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getExecuteUnitDesc().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, executeUnitDesc_);
      }
      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, executeUnitDesc_);
      }
      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.PSMasterServiceProtos.GetExecuteUnitDescResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse) obj;

      boolean result = true;
      result = result && (hasExecuteUnitDesc() == other.hasExecuteUnitDesc());
      if (hasExecuteUnitDesc()) {
        result = result && getExecuteUnitDesc()
            .equals(other.getExecuteUnitDesc());
      }
      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 (hasExecuteUnitDesc()) {
        hash = (37 * hash) + EXECUTEUNITDESC_FIELD_NUMBER;
        hash = (53 * hash) + getExecuteUnitDesc().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse 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.PSMasterServiceProtos.GetExecuteUnitDescResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse 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.PSMasterServiceProtos.GetExecuteUnitDescResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse 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.PSMasterServiceProtos.GetExecuteUnitDescResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse 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.PSMasterServiceProtos.GetExecuteUnitDescResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse 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.PSMasterServiceProtos.GetExecuteUnitDescResponse 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 GetExecuteUnitDescResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetExecuteUnitDescResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
        } else {
          executeUnitDescBuilder_.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.PSMasterServiceProtos.internal_static_GetExecuteUnitDescResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (executeUnitDescBuilder_ == null) {
          result.executeUnitDesc_ = executeUnitDesc_;
        } else {
          result.executeUnitDesc_ = executeUnitDescBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance()) return this;
        if (other.hasExecuteUnitDesc()) {
          mergeExecuteUnitDesc(other.getExecuteUnitDesc());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasExecuteUnitDesc()) {
          
          return false;
        }
        if (!getExecuteUnitDesc().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.PSMasterServiceProtos.GetExecuteUnitDescResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .ExecuteUnitDesc executeUnitDesc = 1;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder> executeUnitDescBuilder_;
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public boolean hasExecuteUnitDesc() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc getExecuteUnitDesc() {
        if (executeUnitDescBuilder_ == null) {
          return executeUnitDesc_;
        } else {
          return executeUnitDescBuilder_.getMessage();
        }
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public Builder setExecuteUnitDesc(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc value) {
        if (executeUnitDescBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          executeUnitDesc_ = value;
          onChanged();
        } else {
          executeUnitDescBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public Builder setExecuteUnitDesc(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder builderForValue) {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = builderForValue.build();
          onChanged();
        } else {
          executeUnitDescBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public Builder mergeExecuteUnitDesc(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc value) {
        if (executeUnitDescBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              executeUnitDesc_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance()) {
            executeUnitDesc_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.newBuilder(executeUnitDesc_).mergeFrom(value).buildPartial();
          } else {
            executeUnitDesc_ = value;
          }
          onChanged();
        } else {
          executeUnitDescBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public Builder clearExecuteUnitDesc() {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDesc_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.getDefaultInstance();
          onChanged();
        } else {
          executeUnitDescBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder getExecuteUnitDescBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getExecuteUnitDescFieldBuilder().getBuilder();
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder getExecuteUnitDescOrBuilder() {
        if (executeUnitDescBuilder_ != null) {
          return executeUnitDescBuilder_.getMessageOrBuilder();
        } else {
          return executeUnitDesc_;
        }
      }
      /**
       * required .ExecuteUnitDesc executeUnitDesc = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder> 
          getExecuteUnitDescFieldBuilder() {
        if (executeUnitDescBuilder_ == null) {
          executeUnitDescBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDesc.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.ExecuteUnitDescOrBuilder>(
                  executeUnitDesc_,
                  getParentForChildren(),
                  isClean());
          executeUnitDesc_ = null;
        }
        return executeUnitDescBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetExecuteUnitDescResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetExecuteUnitDescResponse)
  }

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

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

    public GetTaskMatrixClockRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetTaskMatrixClockRequest(
        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.PSMasterServiceProtos.internal_static_GetTaskMatrixClockRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public GetTaskMatrixClockRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetTaskMatrixClockRequest(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.PSMasterServiceProtos.GetTaskMatrixClockRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest) 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.PSMasterServiceProtos.GetTaskMatrixClockRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.PSMasterServiceProtos.GetTaskMatrixClockRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.PSMasterServiceProtos.GetTaskMatrixClockRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.PSMasterServiceProtos.GetTaskMatrixClockRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.PSMasterServiceProtos.GetTaskMatrixClockRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.PSMasterServiceProtos.GetTaskMatrixClockRequest 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 GetTaskMatrixClockRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.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.PSMasterServiceProtos.internal_static_GetTaskMatrixClockRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.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.PSMasterServiceProtos.GetTaskMatrixClockRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetTaskMatrixClockRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetTaskMatrixClockRequest)
  }

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

    // required .TaskIdProto taskId = 1;
    /**
     * required .TaskIdProto taskId = 1;
     */
    boolean hasTaskId();
    /**
     * required .TaskIdProto taskId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto getTaskId();
    /**
     * required .TaskIdProto taskId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder getTaskIdOrBuilder();

    // repeated .MatrixClock matrixClocks = 2;
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    java.util.List 
        getMatrixClocksList();
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixClock getMatrixClocks(int index);
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    int getMatrixClocksCount();
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    java.util.List 
        getMatrixClocksOrBuilderList();
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder getMatrixClocksOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code TaskMatrixClock}
   */
  public static final class TaskMatrixClock extends
      com.google.protobuf.GeneratedMessage
      implements TaskMatrixClockOrBuilder {
    // Use TaskMatrixClock.newBuilder() to construct.
    private TaskMatrixClock(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TaskMatrixClock(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public TaskMatrixClock getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private TaskMatrixClock(
        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.TaskIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = taskId_.toBuilder();
              }
              taskId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(taskId_);
                taskId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                matrixClocks_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              matrixClocks_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.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)) {
          matrixClocks_ = java.util.Collections.unmodifiableList(matrixClocks_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_TaskMatrixClock_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_TaskMatrixClock_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder.class);
    }

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

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

    private int bitField0_;
    // required .TaskIdProto taskId = 1;
    public static final int TASKID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto taskId_;
    /**
     * required .TaskIdProto taskId = 1;
     */
    public boolean hasTaskId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .TaskIdProto taskId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto getTaskId() {
      return taskId_;
    }
    /**
     * required .TaskIdProto taskId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder getTaskIdOrBuilder() {
      return taskId_;
    }

    // repeated .MatrixClock matrixClocks = 2;
    public static final int MATRIXCLOCKS_FIELD_NUMBER = 2;
    private java.util.List matrixClocks_;
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    public java.util.List getMatrixClocksList() {
      return matrixClocks_;
    }
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    public java.util.List 
        getMatrixClocksOrBuilderList() {
      return matrixClocks_;
    }
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    public int getMatrixClocksCount() {
      return matrixClocks_.size();
    }
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixClock getMatrixClocks(int index) {
      return matrixClocks_.get(index);
    }
    /**
     * repeated .MatrixClock matrixClocks = 2;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder getMatrixClocksOrBuilder(
        int index) {
      return matrixClocks_.get(index);
    }

    private void initFields() {
      taskId_ = com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.getDefaultInstance();
      matrixClocks_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasTaskId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTaskId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getMatrixClocksCount(); i++) {
        if (!getMatrixClocks(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.writeMessage(1, taskId_);
      }
      for (int i = 0; i < matrixClocks_.size(); i++) {
        output.writeMessage(2, matrixClocks_.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
          .computeMessageSize(1, taskId_);
      }
      for (int i = 0; i < matrixClocks_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, matrixClocks_.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.PSMasterServiceProtos.TaskMatrixClock)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock) obj;

      boolean result = true;
      result = result && (hasTaskId() == other.hasTaskId());
      if (hasTaskId()) {
        result = result && getTaskId()
            .equals(other.getTaskId());
      }
      result = result && getMatrixClocksList()
          .equals(other.getMatrixClocksList());
      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 (hasTaskId()) {
        hash = (37 * hash) + TASKID_FIELD_NUMBER;
        hash = (53 * hash) + getTaskId().hashCode();
      }
      if (getMatrixClocksCount() > 0) {
        hash = (37 * hash) + MATRIXCLOCKS_FIELD_NUMBER;
        hash = (53 * hash) + getMatrixClocksList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock 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.PSMasterServiceProtos.TaskMatrixClock parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock 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.PSMasterServiceProtos.TaskMatrixClock parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock 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.PSMasterServiceProtos.TaskMatrixClock parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock 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.PSMasterServiceProtos.TaskMatrixClock parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock 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.PSMasterServiceProtos.TaskMatrixClock 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 TaskMatrixClock}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_TaskMatrixClock_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_TaskMatrixClock_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (taskIdBuilder_ == null) {
          taskId_ = com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.getDefaultInstance();
        } else {
          taskIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (matrixClocksBuilder_ == null) {
          matrixClocks_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matrixClocksBuilder_.clear();
        }
        return this;
      }

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (taskIdBuilder_ == null) {
          result.taskId_ = taskId_;
        } else {
          result.taskId_ = taskIdBuilder_.build();
        }
        if (matrixClocksBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matrixClocks_ = java.util.Collections.unmodifiableList(matrixClocks_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.matrixClocks_ = matrixClocks_;
        } else {
          result.matrixClocks_ = matrixClocksBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.getDefaultInstance()) return this;
        if (other.hasTaskId()) {
          mergeTaskId(other.getTaskId());
        }
        if (matrixClocksBuilder_ == null) {
          if (!other.matrixClocks_.isEmpty()) {
            if (matrixClocks_.isEmpty()) {
              matrixClocks_ = other.matrixClocks_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatrixClocksIsMutable();
              matrixClocks_.addAll(other.matrixClocks_);
            }
            onChanged();
          }
        } else {
          if (!other.matrixClocks_.isEmpty()) {
            if (matrixClocksBuilder_.isEmpty()) {
              matrixClocksBuilder_.dispose();
              matrixClocksBuilder_ = null;
              matrixClocks_ = other.matrixClocks_;
              bitField0_ = (bitField0_ & ~0x00000002);
              matrixClocksBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMatrixClocksFieldBuilder() : null;
            } else {
              matrixClocksBuilder_.addAllMessages(other.matrixClocks_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasTaskId()) {
          
          return false;
        }
        if (!getTaskId().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getMatrixClocksCount(); i++) {
          if (!getMatrixClocks(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.PSMasterServiceProtos.TaskMatrixClock parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .TaskIdProto taskId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto taskId_ = com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder> taskIdBuilder_;
      /**
       * required .TaskIdProto taskId = 1;
       */
      public boolean hasTaskId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto getTaskId() {
        if (taskIdBuilder_ == null) {
          return taskId_;
        } else {
          return taskIdBuilder_.getMessage();
        }
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public Builder setTaskId(com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto value) {
        if (taskIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          taskId_ = value;
          onChanged();
        } else {
          taskIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public Builder setTaskId(
          com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.Builder builderForValue) {
        if (taskIdBuilder_ == null) {
          taskId_ = builderForValue.build();
          onChanged();
        } else {
          taskIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public Builder mergeTaskId(com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto value) {
        if (taskIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              taskId_ != com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.getDefaultInstance()) {
            taskId_ =
              com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.newBuilder(taskId_).mergeFrom(value).buildPartial();
          } else {
            taskId_ = value;
          }
          onChanged();
        } else {
          taskIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public Builder clearTaskId() {
        if (taskIdBuilder_ == null) {
          taskId_ = com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.getDefaultInstance();
          onChanged();
        } else {
          taskIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.Builder getTaskIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTaskIdFieldBuilder().getBuilder();
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder getTaskIdOrBuilder() {
        if (taskIdBuilder_ != null) {
          return taskIdBuilder_.getMessageOrBuilder();
        } else {
          return taskId_;
        }
      }
      /**
       * required .TaskIdProto taskId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder> 
          getTaskIdFieldBuilder() {
        if (taskIdBuilder_ == null) {
          taskIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.TaskIdProtoOrBuilder>(
                  taskId_,
                  getParentForChildren(),
                  isClean());
          taskId_ = null;
        }
        return taskIdBuilder_;
      }

      // repeated .MatrixClock matrixClocks = 2;
      private java.util.List matrixClocks_ =
        java.util.Collections.emptyList();
      private void ensureMatrixClocksIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matrixClocks_ = new java.util.ArrayList(matrixClocks_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixClock, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder> matrixClocksBuilder_;

      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public java.util.List getMatrixClocksList() {
        if (matrixClocksBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matrixClocks_);
        } else {
          return matrixClocksBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public int getMatrixClocksCount() {
        if (matrixClocksBuilder_ == null) {
          return matrixClocks_.size();
        } else {
          return matrixClocksBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixClock getMatrixClocks(int index) {
        if (matrixClocksBuilder_ == null) {
          return matrixClocks_.get(index);
        } else {
          return matrixClocksBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder setMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock value) {
        if (matrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixClocksIsMutable();
          matrixClocks_.set(index, value);
          onChanged();
        } else {
          matrixClocksBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder setMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder builderForValue) {
        if (matrixClocksBuilder_ == null) {
          ensureMatrixClocksIsMutable();
          matrixClocks_.set(index, builderForValue.build());
          onChanged();
        } else {
          matrixClocksBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder addMatrixClocks(com.tencent.angel.protobuf.generated.MLProtos.MatrixClock value) {
        if (matrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixClocksIsMutable();
          matrixClocks_.add(value);
          onChanged();
        } else {
          matrixClocksBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder addMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock value) {
        if (matrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatrixClocksIsMutable();
          matrixClocks_.add(index, value);
          onChanged();
        } else {
          matrixClocksBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder addMatrixClocks(
          com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder builderForValue) {
        if (matrixClocksBuilder_ == null) {
          ensureMatrixClocksIsMutable();
          matrixClocks_.add(builderForValue.build());
          onChanged();
        } else {
          matrixClocksBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder addMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder builderForValue) {
        if (matrixClocksBuilder_ == null) {
          ensureMatrixClocksIsMutable();
          matrixClocks_.add(index, builderForValue.build());
          onChanged();
        } else {
          matrixClocksBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder addAllMatrixClocks(
          java.lang.Iterable values) {
        if (matrixClocksBuilder_ == null) {
          ensureMatrixClocksIsMutable();
          super.addAll(values, matrixClocks_);
          onChanged();
        } else {
          matrixClocksBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder clearMatrixClocks() {
        if (matrixClocksBuilder_ == null) {
          matrixClocks_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matrixClocksBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public Builder removeMatrixClocks(int index) {
        if (matrixClocksBuilder_ == null) {
          ensureMatrixClocksIsMutable();
          matrixClocks_.remove(index);
          onChanged();
        } else {
          matrixClocksBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder getMatrixClocksBuilder(
          int index) {
        return getMatrixClocksFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder getMatrixClocksOrBuilder(
          int index) {
        if (matrixClocksBuilder_ == null) {
          return matrixClocks_.get(index);  } else {
          return matrixClocksBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public java.util.List 
           getMatrixClocksOrBuilderList() {
        if (matrixClocksBuilder_ != null) {
          return matrixClocksBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matrixClocks_);
        }
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder addMatrixClocksBuilder() {
        return getMatrixClocksFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.getDefaultInstance());
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder addMatrixClocksBuilder(
          int index) {
        return getMatrixClocksFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.getDefaultInstance());
      }
      /**
       * repeated .MatrixClock matrixClocks = 2;
       */
      public java.util.List 
           getMatrixClocksBuilderList() {
        return getMatrixClocksFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixClock, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder> 
          getMatrixClocksFieldBuilder() {
        if (matrixClocksBuilder_ == null) {
          matrixClocksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.MatrixClock, com.tencent.angel.protobuf.generated.MLProtos.MatrixClock.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixClockOrBuilder>(
                  matrixClocks_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          matrixClocks_ = null;
        }
        return matrixClocksBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:TaskMatrixClock)
    }

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

    // @@protoc_insertion_point(class_scope:TaskMatrixClock)
  }

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

    // repeated .TaskMatrixClock taskMatrixClocks = 1;
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    java.util.List 
        getTaskMatrixClocksList();
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock getTaskMatrixClocks(int index);
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    int getTaskMatrixClocksCount();
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    java.util.List 
        getTaskMatrixClocksOrBuilderList();
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder getTaskMatrixClocksOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code GetTaskMatrixClockResponse}
   */
  public static final class GetTaskMatrixClockResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetTaskMatrixClockResponseOrBuilder {
    // Use GetTaskMatrixClockResponse.newBuilder() to construct.
    private GetTaskMatrixClockResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetTaskMatrixClockResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetTaskMatrixClockResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetTaskMatrixClockResponse(
        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)) {
                taskMatrixClocks_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              taskMatrixClocks_.add(input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.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)) {
          taskMatrixClocks_ = java.util.Collections.unmodifiableList(taskMatrixClocks_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.Builder.class);
    }

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

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

    // repeated .TaskMatrixClock taskMatrixClocks = 1;
    public static final int TASKMATRIXCLOCKS_FIELD_NUMBER = 1;
    private java.util.List taskMatrixClocks_;
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    public java.util.List getTaskMatrixClocksList() {
      return taskMatrixClocks_;
    }
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    public java.util.List 
        getTaskMatrixClocksOrBuilderList() {
      return taskMatrixClocks_;
    }
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    public int getTaskMatrixClocksCount() {
      return taskMatrixClocks_.size();
    }
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock getTaskMatrixClocks(int index) {
      return taskMatrixClocks_.get(index);
    }
    /**
     * repeated .TaskMatrixClock taskMatrixClocks = 1;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder getTaskMatrixClocksOrBuilder(
        int index) {
      return taskMatrixClocks_.get(index);
    }

    private void initFields() {
      taskMatrixClocks_ = 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 < getTaskMatrixClocksCount(); i++) {
        if (!getTaskMatrixClocks(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 < taskMatrixClocks_.size(); i++) {
        output.writeMessage(1, taskMatrixClocks_.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 < taskMatrixClocks_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, taskMatrixClocks_.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.PSMasterServiceProtos.GetTaskMatrixClockResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse) obj;

      boolean result = true;
      result = result && getTaskMatrixClocksList()
          .equals(other.getTaskMatrixClocksList());
      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 (getTaskMatrixClocksCount() > 0) {
        hash = (37 * hash) + TASKMATRIXCLOCKS_FIELD_NUMBER;
        hash = (53 * hash) + getTaskMatrixClocksList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse 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.PSMasterServiceProtos.GetTaskMatrixClockResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse 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.PSMasterServiceProtos.GetTaskMatrixClockResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse 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.PSMasterServiceProtos.GetTaskMatrixClockResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse 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.PSMasterServiceProtos.GetTaskMatrixClockResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse 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.PSMasterServiceProtos.GetTaskMatrixClockResponse 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 GetTaskMatrixClockResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetTaskMatrixClockResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.Builder.class);
      }

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

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

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

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.getDefaultInstance()) return this;
        if (taskMatrixClocksBuilder_ == null) {
          if (!other.taskMatrixClocks_.isEmpty()) {
            if (taskMatrixClocks_.isEmpty()) {
              taskMatrixClocks_ = other.taskMatrixClocks_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTaskMatrixClocksIsMutable();
              taskMatrixClocks_.addAll(other.taskMatrixClocks_);
            }
            onChanged();
          }
        } else {
          if (!other.taskMatrixClocks_.isEmpty()) {
            if (taskMatrixClocksBuilder_.isEmpty()) {
              taskMatrixClocksBuilder_.dispose();
              taskMatrixClocksBuilder_ = null;
              taskMatrixClocks_ = other.taskMatrixClocks_;
              bitField0_ = (bitField0_ & ~0x00000001);
              taskMatrixClocksBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTaskMatrixClocksFieldBuilder() : null;
            } else {
              taskMatrixClocksBuilder_.addAllMessages(other.taskMatrixClocks_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getTaskMatrixClocksCount(); i++) {
          if (!getTaskMatrixClocks(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.PSMasterServiceProtos.GetTaskMatrixClockResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .TaskMatrixClock taskMatrixClocks = 1;
      private java.util.List taskMatrixClocks_ =
        java.util.Collections.emptyList();
      private void ensureTaskMatrixClocksIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          taskMatrixClocks_ = new java.util.ArrayList(taskMatrixClocks_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder> taskMatrixClocksBuilder_;

      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public java.util.List getTaskMatrixClocksList() {
        if (taskMatrixClocksBuilder_ == null) {
          return java.util.Collections.unmodifiableList(taskMatrixClocks_);
        } else {
          return taskMatrixClocksBuilder_.getMessageList();
        }
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public int getTaskMatrixClocksCount() {
        if (taskMatrixClocksBuilder_ == null) {
          return taskMatrixClocks_.size();
        } else {
          return taskMatrixClocksBuilder_.getCount();
        }
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock getTaskMatrixClocks(int index) {
        if (taskMatrixClocksBuilder_ == null) {
          return taskMatrixClocks_.get(index);
        } else {
          return taskMatrixClocksBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder setTaskMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock value) {
        if (taskMatrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.set(index, value);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder setTaskMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder builderForValue) {
        if (taskMatrixClocksBuilder_ == null) {
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.set(index, builderForValue.build());
          onChanged();
        } else {
          taskMatrixClocksBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder addTaskMatrixClocks(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock value) {
        if (taskMatrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.add(value);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder addTaskMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock value) {
        if (taskMatrixClocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.add(index, value);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder addTaskMatrixClocks(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder builderForValue) {
        if (taskMatrixClocksBuilder_ == null) {
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.add(builderForValue.build());
          onChanged();
        } else {
          taskMatrixClocksBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder addTaskMatrixClocks(
          int index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder builderForValue) {
        if (taskMatrixClocksBuilder_ == null) {
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.add(index, builderForValue.build());
          onChanged();
        } else {
          taskMatrixClocksBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder addAllTaskMatrixClocks(
          java.lang.Iterable values) {
        if (taskMatrixClocksBuilder_ == null) {
          ensureTaskMatrixClocksIsMutable();
          super.addAll(values, taskMatrixClocks_);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder clearTaskMatrixClocks() {
        if (taskMatrixClocksBuilder_ == null) {
          taskMatrixClocks_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public Builder removeTaskMatrixClocks(int index) {
        if (taskMatrixClocksBuilder_ == null) {
          ensureTaskMatrixClocksIsMutable();
          taskMatrixClocks_.remove(index);
          onChanged();
        } else {
          taskMatrixClocksBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder getTaskMatrixClocksBuilder(
          int index) {
        return getTaskMatrixClocksFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder getTaskMatrixClocksOrBuilder(
          int index) {
        if (taskMatrixClocksBuilder_ == null) {
          return taskMatrixClocks_.get(index);  } else {
          return taskMatrixClocksBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public java.util.List 
           getTaskMatrixClocksOrBuilderList() {
        if (taskMatrixClocksBuilder_ != null) {
          return taskMatrixClocksBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(taskMatrixClocks_);
        }
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder addTaskMatrixClocksBuilder() {
        return getTaskMatrixClocksFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.getDefaultInstance());
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder addTaskMatrixClocksBuilder(
          int index) {
        return getTaskMatrixClocksFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.getDefaultInstance());
      }
      /**
       * repeated .TaskMatrixClock taskMatrixClocks = 1;
       */
      public java.util.List 
           getTaskMatrixClocksBuilderList() {
        return getTaskMatrixClocksFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder> 
          getTaskMatrixClocksFieldBuilder() {
        if (taskMatrixClocksBuilder_ == null) {
          taskMatrixClocksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClock.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.TaskMatrixClockOrBuilder>(
                  taskMatrixClocks_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          taskMatrixClocks_ = null;
        }
        return taskMatrixClocksBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetTaskMatrixClockResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetTaskMatrixClockResponse)
  }

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

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

    public GetIterationRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetIterationRequest(
        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.PSMasterServiceProtos.internal_static_GetIterationRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public GetIterationRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetIterationRequest(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.PSMasterServiceProtos.GetIterationRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest) 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.PSMasterServiceProtos.GetIterationRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest 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.PSMasterServiceProtos.GetIterationRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest 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.PSMasterServiceProtos.GetIterationRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest 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.PSMasterServiceProtos.GetIterationRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest 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.PSMasterServiceProtos.GetIterationRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest 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.PSMasterServiceProtos.GetIterationRequest 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 GetIterationRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.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.PSMasterServiceProtos.internal_static_GetIterationRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.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.PSMasterServiceProtos.GetIterationRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetIterationRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetIterationRequest)
  }

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

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

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

    public GetIterationResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetIterationResponse(
        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;
              iteration_ = 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.PSMasterServiceProtos.internal_static_GetIterationResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 iteration = 1;
    public static final int ITERATION_FIELD_NUMBER = 1;
    private int iteration_;
    /**
     * required int32 iteration = 1;
     */
    public boolean hasIteration() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 iteration = 1;
     */
    public int getIteration() {
      return iteration_;
    }

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

      if (!hasIteration()) {
        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, iteration_);
      }
      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, iteration_);
      }
      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.PSMasterServiceProtos.GetIterationResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse) obj;

      boolean result = true;
      result = result && (hasIteration() == other.hasIteration());
      if (hasIteration()) {
        result = result && (getIteration()
            == other.getIteration());
      }
      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 (hasIteration()) {
        hash = (37 * hash) + ITERATION_FIELD_NUMBER;
        hash = (53 * hash) + getIteration();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse 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.PSMasterServiceProtos.GetIterationResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse 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.PSMasterServiceProtos.GetIterationResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse 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.PSMasterServiceProtos.GetIterationResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse 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.PSMasterServiceProtos.GetIterationResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse 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.PSMasterServiceProtos.GetIterationResponse 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 GetIterationResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetIterationResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.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();
        iteration_ = 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.PSMasterServiceProtos.internal_static_GetIterationResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance()) return this;
        if (other.hasIteration()) {
          setIteration(other.getIteration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasIteration()) {
          
          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.PSMasterServiceProtos.GetIterationResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 iteration = 1;
      private int iteration_ ;
      /**
       * required int32 iteration = 1;
       */
      public boolean hasIteration() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 iteration = 1;
       */
      public int getIteration() {
        return iteration_;
      }
      /**
       * required int32 iteration = 1;
       */
      public Builder setIteration(int value) {
        bitField0_ |= 0x00000001;
        iteration_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 iteration = 1;
       */
      public Builder clearIteration() {
        bitField0_ = (bitField0_ & ~0x00000001);
        iteration_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GetIterationResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetIterationResponse)
  }

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

    // required .PSIdProto psId = 1;
    /**
     * required .PSIdProto psId = 1;
     */
    boolean hasPsId();
    /**
     * required .PSIdProto psId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId();
    /**
     * required .PSIdProto psId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder();
  }
  /**
   * Protobuf type {@code GetPSMatricesMetaRequest}
   */
  public static final class GetPSMatricesMetaRequest extends
      com.google.protobuf.GeneratedMessage
      implements GetPSMatricesMetaRequestOrBuilder {
    // Use GetPSMatricesMetaRequest.newBuilder() to construct.
    private GetPSMatricesMetaRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetPSMatricesMetaRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetPSMatricesMetaRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetPSMatricesMetaRequest(
        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.PSIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psId_.toBuilder();
              }
              psId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psId_);
                psId_ = 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.PSMasterServiceProtos.internal_static_GetPSMatricesMetaRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesMetaRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSIdProto psId = 1;
    public static final int PSID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSIdProto psId_;
    /**
     * required .PSIdProto psId = 1;
     */
    public boolean hasPsId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSIdProto psId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId() {
      return psId_;
    }
    /**
     * required .PSIdProto psId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder() {
      return psId_;
    }

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

      if (!hasPsId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsId().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, psId_);
      }
      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, psId_);
      }
      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.PSMasterServiceProtos.GetPSMatricesMetaRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest) obj;

      boolean result = true;
      result = result && (hasPsId() == other.hasPsId());
      if (hasPsId()) {
        result = result && getPsId()
            .equals(other.getPsId());
      }
      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 (hasPsId()) {
        hash = (37 * hash) + PSID_FIELD_NUMBER;
        hash = (53 * hash) + getPsId().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest 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.PSMasterServiceProtos.GetPSMatricesMetaRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest 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.PSMasterServiceProtos.GetPSMatricesMetaRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest 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.PSMasterServiceProtos.GetPSMatricesMetaRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest 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.PSMasterServiceProtos.GetPSMatricesMetaRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest 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.PSMasterServiceProtos.GetPSMatricesMetaRequest 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 GetPSMatricesMetaRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesMetaRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesMetaRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psIdBuilder_ == null) {
          psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
        } else {
          psIdBuilder_.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.PSMasterServiceProtos.internal_static_GetPSMatricesMetaRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psIdBuilder_ == null) {
          result.psId_ = psId_;
        } else {
          result.psId_ = psIdBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.getDefaultInstance()) return this;
        if (other.hasPsId()) {
          mergePsId(other.getPsId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsId()) {
          
          return false;
        }
        if (!getPsId().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.PSMasterServiceProtos.GetPSMatricesMetaRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSIdProto psId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSIdProto psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder> psIdBuilder_;
      /**
       * required .PSIdProto psId = 1;
       */
      public boolean hasPsId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto getPsId() {
        if (psIdBuilder_ == null) {
          return psId_;
        } else {
          return psIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public Builder setPsId(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto value) {
        if (psIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psId_ = value;
          onChanged();
        } else {
          psIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public Builder setPsId(
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder builderForValue) {
        if (psIdBuilder_ == null) {
          psId_ = builderForValue.build();
          onChanged();
        } else {
          psIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public Builder mergePsId(com.tencent.angel.protobuf.generated.MLProtos.PSIdProto value) {
        if (psIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psId_ != com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance()) {
            psId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.newBuilder(psId_).mergeFrom(value).buildPartial();
          } else {
            psId_ = value;
          }
          onChanged();
        } else {
          psIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public Builder clearPsId() {
        if (psIdBuilder_ == null) {
          psId_ = com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.getDefaultInstance();
          onChanged();
        } else {
          psIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder getPsIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSIdProto psId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder getPsIdOrBuilder() {
        if (psIdBuilder_ != null) {
          return psIdBuilder_.getMessageOrBuilder();
        } else {
          return psId_;
        }
      }
      /**
       * required .PSIdProto psId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder> 
          getPsIdFieldBuilder() {
        if (psIdBuilder_ == null) {
          psIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSIdProtoOrBuilder>(
                  psId_,
                  getParentForChildren(),
                  isClean());
          psId_ = null;
        }
        return psIdBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetPSMatricesMetaRequest)
    }

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

    // @@protoc_insertion_point(class_scope:GetPSMatricesMetaRequest)
  }

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

    // repeated .MatrixMetaProto matricesMeta = 1;
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    java.util.List 
        getMatricesMetaList();
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getMatricesMeta(int index);
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    int getMatricesMetaCount();
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    java.util.List 
        getMatricesMetaOrBuilderList();
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getMatricesMetaOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code GetPSMatricesResponse}
   */
  public static final class GetPSMatricesResponse extends
      com.google.protobuf.GeneratedMessage
      implements GetPSMatricesResponseOrBuilder {
    // Use GetPSMatricesResponse.newBuilder() to construct.
    private GetPSMatricesResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetPSMatricesResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public GetPSMatricesResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetPSMatricesResponse(
        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)) {
                matricesMeta_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              matricesMeta_.add(input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.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)) {
          matricesMeta_ = java.util.Collections.unmodifiableList(matricesMeta_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.Builder.class);
    }

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

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

    // repeated .MatrixMetaProto matricesMeta = 1;
    public static final int MATRICESMETA_FIELD_NUMBER = 1;
    private java.util.List matricesMeta_;
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    public java.util.List getMatricesMetaList() {
      return matricesMeta_;
    }
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    public java.util.List 
        getMatricesMetaOrBuilderList() {
      return matricesMeta_;
    }
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    public int getMatricesMetaCount() {
      return matricesMeta_.size();
    }
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getMatricesMeta(int index) {
      return matricesMeta_.get(index);
    }
    /**
     * repeated .MatrixMetaProto matricesMeta = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getMatricesMetaOrBuilder(
        int index) {
      return matricesMeta_.get(index);
    }

    private void initFields() {
      matricesMeta_ = 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 < getMatricesMetaCount(); i++) {
        if (!getMatricesMeta(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 < matricesMeta_.size(); i++) {
        output.writeMessage(1, matricesMeta_.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 < matricesMeta_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, matricesMeta_.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.PSMasterServiceProtos.GetPSMatricesResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse) obj;

      boolean result = true;
      result = result && getMatricesMetaList()
          .equals(other.getMatricesMetaList());
      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 (getMatricesMetaCount() > 0) {
        hash = (37 * hash) + MATRICESMETA_FIELD_NUMBER;
        hash = (53 * hash) + getMatricesMetaList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse 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.PSMasterServiceProtos.GetPSMatricesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse 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.PSMasterServiceProtos.GetPSMatricesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse 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.PSMasterServiceProtos.GetPSMatricesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse 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.PSMasterServiceProtos.GetPSMatricesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse 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.PSMasterServiceProtos.GetPSMatricesResponse 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 GetPSMatricesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_GetPSMatricesResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.Builder.class);
      }

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

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

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

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

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance()) return this;
        if (matricesMetaBuilder_ == null) {
          if (!other.matricesMeta_.isEmpty()) {
            if (matricesMeta_.isEmpty()) {
              matricesMeta_ = other.matricesMeta_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMatricesMetaIsMutable();
              matricesMeta_.addAll(other.matricesMeta_);
            }
            onChanged();
          }
        } else {
          if (!other.matricesMeta_.isEmpty()) {
            if (matricesMetaBuilder_.isEmpty()) {
              matricesMetaBuilder_.dispose();
              matricesMetaBuilder_ = null;
              matricesMeta_ = other.matricesMeta_;
              bitField0_ = (bitField0_ & ~0x00000001);
              matricesMetaBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMatricesMetaFieldBuilder() : null;
            } else {
              matricesMetaBuilder_.addAllMessages(other.matricesMeta_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getMatricesMetaCount(); i++) {
          if (!getMatricesMeta(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.PSMasterServiceProtos.GetPSMatricesResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .MatrixMetaProto matricesMeta = 1;
      private java.util.List matricesMeta_ =
        java.util.Collections.emptyList();
      private void ensureMatricesMetaIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          matricesMeta_ = new java.util.ArrayList(matricesMeta_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder> matricesMetaBuilder_;

      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public java.util.List getMatricesMetaList() {
        if (matricesMetaBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matricesMeta_);
        } else {
          return matricesMetaBuilder_.getMessageList();
        }
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public int getMatricesMetaCount() {
        if (matricesMetaBuilder_ == null) {
          return matricesMeta_.size();
        } else {
          return matricesMetaBuilder_.getCount();
        }
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto getMatricesMeta(int index) {
        if (matricesMetaBuilder_ == null) {
          return matricesMeta_.get(index);
        } else {
          return matricesMetaBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder setMatricesMeta(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (matricesMetaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatricesMetaIsMutable();
          matricesMeta_.set(index, value);
          onChanged();
        } else {
          matricesMetaBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder setMatricesMeta(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (matricesMetaBuilder_ == null) {
          ensureMatricesMetaIsMutable();
          matricesMeta_.set(index, builderForValue.build());
          onChanged();
        } else {
          matricesMetaBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder addMatricesMeta(com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (matricesMetaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatricesMetaIsMutable();
          matricesMeta_.add(value);
          onChanged();
        } else {
          matricesMetaBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder addMatricesMeta(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto value) {
        if (matricesMetaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatricesMetaIsMutable();
          matricesMeta_.add(index, value);
          onChanged();
        } else {
          matricesMetaBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder addMatricesMeta(
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (matricesMetaBuilder_ == null) {
          ensureMatricesMetaIsMutable();
          matricesMeta_.add(builderForValue.build());
          onChanged();
        } else {
          matricesMetaBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder addMatricesMeta(
          int index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder builderForValue) {
        if (matricesMetaBuilder_ == null) {
          ensureMatricesMetaIsMutable();
          matricesMeta_.add(index, builderForValue.build());
          onChanged();
        } else {
          matricesMetaBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder addAllMatricesMeta(
          java.lang.Iterable values) {
        if (matricesMetaBuilder_ == null) {
          ensureMatricesMetaIsMutable();
          super.addAll(values, matricesMeta_);
          onChanged();
        } else {
          matricesMetaBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder clearMatricesMeta() {
        if (matricesMetaBuilder_ == null) {
          matricesMeta_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          matricesMetaBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public Builder removeMatricesMeta(int index) {
        if (matricesMetaBuilder_ == null) {
          ensureMatricesMetaIsMutable();
          matricesMeta_.remove(index);
          onChanged();
        } else {
          matricesMetaBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder getMatricesMetaBuilder(
          int index) {
        return getMatricesMetaFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder getMatricesMetaOrBuilder(
          int index) {
        if (matricesMetaBuilder_ == null) {
          return matricesMeta_.get(index);  } else {
          return matricesMetaBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public java.util.List 
           getMatricesMetaOrBuilderList() {
        if (matricesMetaBuilder_ != null) {
          return matricesMetaBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matricesMeta_);
        }
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder addMatricesMetaBuilder() {
        return getMatricesMetaFieldBuilder().addBuilder(
            com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder addMatricesMetaBuilder(
          int index) {
        return getMatricesMetaFieldBuilder().addBuilder(
            index, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.getDefaultInstance());
      }
      /**
       * repeated .MatrixMetaProto matricesMeta = 1;
       */
      public java.util.List 
           getMatricesMetaBuilderList() {
        return getMatricesMetaFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder> 
          getMatricesMetaFieldBuilder() {
        if (matricesMetaBuilder_ == null) {
          matricesMetaBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.MatrixMetaProtoOrBuilder>(
                  matricesMeta_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          matricesMeta_ = null;
        }
        return matricesMetaBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:GetPSMatricesResponse)
    }

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

    // @@protoc_insertion_point(class_scope:GetPSMatricesResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required .PSMatricesSaveResultProto result = 2;
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    boolean hasResult();
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto getResult();
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder getResultOrBuilder();
  }
  /**
   * Protobuf type {@code SaveFinishRequest}
   */
  public static final class SaveFinishRequest extends
      com.google.protobuf.GeneratedMessage
      implements SaveFinishRequestOrBuilder {
    // Use SaveFinishRequest.newBuilder() to construct.
    private SaveFinishRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SaveFinishRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SaveFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SaveFinishRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = result_.toBuilder();
              }
              result_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(result_);
                result_ = 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.PSMasterServiceProtos.internal_static_SaveFinishRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

    // required .PSMatricesSaveResultProto result = 2;
    public static final int RESULT_FIELD_NUMBER = 2;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto result_;
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto getResult() {
      return result_;
    }
    /**
     * required .PSMatricesSaveResultProto result = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder getResultOrBuilder() {
      return result_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getResult().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, result_);
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, result_);
      }
      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.PSMasterServiceProtos.SaveFinishRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasResult() == other.hasResult());
      if (hasResult()) {
        result = result && getResult()
            .equals(other.getResult());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasResult()) {
        hash = (37 * hash) + RESULT_FIELD_NUMBER;
        hash = (53 * hash) + getResult().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest 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.PSMasterServiceProtos.SaveFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest 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.PSMasterServiceProtos.SaveFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest 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.PSMasterServiceProtos.SaveFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest 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.PSMasterServiceProtos.SaveFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest 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.PSMasterServiceProtos.SaveFinishRequest 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 SaveFinishRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resultBuilder_ == null) {
          result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance();
        } else {
          resultBuilder_.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.PSMasterServiceProtos.internal_static_SaveFinishRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (resultBuilder_ == null) {
          result.result_ = result_;
        } else {
          result.result_ = resultBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasResult()) {
          mergeResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasResult()) {
          
          return false;
        }
        if (!getPsAttemptId().isInitialized()) {
          
          return false;
        }
        if (!getResult().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.PSMasterServiceProtos.SaveFinishRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // required .PSMatricesSaveResultProto result = 2;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder> resultBuilder_;
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto getResult() {
        if (resultBuilder_ == null) {
          return result_;
        } else {
          return resultBuilder_.getMessage();
        }
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public Builder setResult(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          result_ = value;
          onChanged();
        } else {
          resultBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public Builder setResult(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder builderForValue) {
        if (resultBuilder_ == null) {
          result_ = builderForValue.build();
          onChanged();
        } else {
          resultBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public Builder mergeResult(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto value) {
        if (resultBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              result_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance()) {
            result_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.newBuilder(result_).mergeFrom(value).buildPartial();
          } else {
            result_ = value;
          }
          onChanged();
        } else {
          resultBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public Builder clearResult() {
        if (resultBuilder_ == null) {
          result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.getDefaultInstance();
          onChanged();
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder getResultBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getResultFieldBuilder().getBuilder();
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder getResultOrBuilder() {
        if (resultBuilder_ != null) {
          return resultBuilder_.getMessageOrBuilder();
        } else {
          return result_;
        }
      }
      /**
       * required .PSMatricesSaveResultProto result = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder> 
          getResultFieldBuilder() {
        if (resultBuilder_ == null) {
          resultBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesSaveResultProtoOrBuilder>(
                  result_,
                  getParentForChildren(),
                  isClean());
          result_ = null;
        }
        return resultBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SaveFinishRequest)
    }

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

    // @@protoc_insertion_point(class_scope:SaveFinishRequest)
  }

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

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

    public SaveFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SaveFinishResponse(
        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.PSMasterServiceProtos.internal_static_SaveFinishResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public SaveFinishResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SaveFinishResponse(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.PSMasterServiceProtos.SaveFinishResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse) 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.PSMasterServiceProtos.SaveFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse 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.PSMasterServiceProtos.SaveFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse 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.PSMasterServiceProtos.SaveFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse 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.PSMasterServiceProtos.SaveFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse 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.PSMasterServiceProtos.SaveFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse 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.PSMasterServiceProtos.SaveFinishResponse 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 SaveFinishResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveFinishResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.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.PSMasterServiceProtos.internal_static_SaveFinishResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.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.PSMasterServiceProtos.SaveFinishResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SaveFinishResponse)
    }

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

    // @@protoc_insertion_point(class_scope:SaveFinishResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required .PSMatricesLoadResultProto result = 2;
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    boolean hasResult();
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto getResult();
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder getResultOrBuilder();
  }
  /**
   * Protobuf type {@code LoadFinishRequest}
   */
  public static final class LoadFinishRequest extends
      com.google.protobuf.GeneratedMessage
      implements LoadFinishRequestOrBuilder {
    // Use LoadFinishRequest.newBuilder() to construct.
    private LoadFinishRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoadFinishRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoadFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoadFinishRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = result_.toBuilder();
              }
              result_ = input.readMessage(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(result_);
                result_ = 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.PSMasterServiceProtos.internal_static_LoadFinishRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

    // required .PSMatricesLoadResultProto result = 2;
    public static final int RESULT_FIELD_NUMBER = 2;
    private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto result_;
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto getResult() {
      return result_;
    }
    /**
     * required .PSMatricesLoadResultProto result = 2;
     */
    public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder getResultOrBuilder() {
      return result_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getResult().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, result_);
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, result_);
      }
      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.PSMasterServiceProtos.LoadFinishRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasResult() == other.hasResult());
      if (hasResult()) {
        result = result && getResult()
            .equals(other.getResult());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasResult()) {
        hash = (37 * hash) + RESULT_FIELD_NUMBER;
        hash = (53 * hash) + getResult().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest 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.PSMasterServiceProtos.LoadFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest 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.PSMasterServiceProtos.LoadFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest 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.PSMasterServiceProtos.LoadFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest 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.PSMasterServiceProtos.LoadFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest 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.PSMasterServiceProtos.LoadFinishRequest 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 LoadFinishRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resultBuilder_ == null) {
          result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance();
        } else {
          resultBuilder_.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.PSMasterServiceProtos.internal_static_LoadFinishRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (resultBuilder_ == null) {
          result.result_ = result_;
        } else {
          result.result_ = resultBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasResult()) {
          mergeResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasResult()) {
          
          return false;
        }
        if (!getPsAttemptId().isInitialized()) {
          
          return false;
        }
        if (!getResult().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.PSMasterServiceProtos.LoadFinishRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

      // required .PSMatricesLoadResultProto result = 2;
      private com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder> resultBuilder_;
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto getResult() {
        if (resultBuilder_ == null) {
          return result_;
        } else {
          return resultBuilder_.getMessage();
        }
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public Builder setResult(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          result_ = value;
          onChanged();
        } else {
          resultBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public Builder setResult(
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder builderForValue) {
        if (resultBuilder_ == null) {
          result_ = builderForValue.build();
          onChanged();
        } else {
          resultBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public Builder mergeResult(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto value) {
        if (resultBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              result_ != com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance()) {
            result_ =
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.newBuilder(result_).mergeFrom(value).buildPartial();
          } else {
            result_ = value;
          }
          onChanged();
        } else {
          resultBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public Builder clearResult() {
        if (resultBuilder_ == null) {
          result_ = com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.getDefaultInstance();
          onChanged();
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder getResultBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getResultFieldBuilder().getBuilder();
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder getResultOrBuilder() {
        if (resultBuilder_ != null) {
          return resultBuilder_.getMessageOrBuilder();
        } else {
          return result_;
        }
      }
      /**
       * required .PSMatricesLoadResultProto result = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder> 
          getResultFieldBuilder() {
        if (resultBuilder_ == null) {
          resultBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProto.Builder, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSMatricesLoadResultProtoOrBuilder>(
                  result_,
                  getParentForChildren(),
                  isClean());
          result_ = null;
        }
        return resultBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:LoadFinishRequest)
    }

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

    // @@protoc_insertion_point(class_scope:LoadFinishRequest)
  }

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

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

    public LoadFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoadFinishResponse(
        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.PSMasterServiceProtos.internal_static_LoadFinishResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public LoadFinishResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LoadFinishResponse(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.PSMasterServiceProtos.LoadFinishResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse) 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.PSMasterServiceProtos.LoadFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse 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.PSMasterServiceProtos.LoadFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse 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.PSMasterServiceProtos.LoadFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse 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.PSMasterServiceProtos.LoadFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse 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.PSMasterServiceProtos.LoadFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse 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.PSMasterServiceProtos.LoadFinishResponse 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 LoadFinishResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadFinishResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.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.PSMasterServiceProtos.internal_static_LoadFinishResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.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.PSMasterServiceProtos.LoadFinishResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LoadFinishResponse)
    }

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

    // @@protoc_insertion_point(class_scope:LoadFinishResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required int32 requestId = 2;
    /**
     * required int32 requestId = 2;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 2;
     */
    int getRequestId();

    // required int32 subRequestId = 3;
    /**
     * required int32 subRequestId = 3;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 3;
     */
    int getSubRequestId();
  }
  /**
   * Protobuf type {@code SaveStartRequest}
   */
  public static final class SaveStartRequest extends
      com.google.protobuf.GeneratedMessage
      implements SaveStartRequestOrBuilder {
    // Use SaveStartRequest.newBuilder() to construct.
    private SaveStartRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SaveStartRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public SaveStartRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SaveStartRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              requestId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              subRequestId_ = 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.PSMasterServiceProtos.internal_static_SaveStartRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

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

    // required int32 subRequestId = 3;
    public static final int SUBREQUESTID_FIELD_NUMBER = 3;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 3;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 subRequestId = 3;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, requestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, subRequestId_);
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, requestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, subRequestId_);
      }
      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.PSMasterServiceProtos.SaveStartRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest 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.PSMasterServiceProtos.SaveStartRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest 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.PSMasterServiceProtos.SaveStartRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest 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.PSMasterServiceProtos.SaveStartRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest 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.PSMasterServiceProtos.SaveStartRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest 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.PSMasterServiceProtos.SaveStartRequest 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 SaveStartRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        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.PSMasterServiceProtos.internal_static_SaveStartRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.subRequestId_ = subRequestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        if (!getPsAttemptId().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.PSMasterServiceProtos.SaveStartRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

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

      // required int32 subRequestId = 3;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 3;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 subRequestId = 3;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 3;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000004;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 3;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SaveStartRequest)
    }

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

    // @@protoc_insertion_point(class_scope:SaveStartRequest)
  }

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

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

    public SaveStartResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SaveStartResponse(
        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.PSMasterServiceProtos.internal_static_SaveStartResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public SaveStartResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SaveStartResponse(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.PSMasterServiceProtos.SaveStartResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse) 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.PSMasterServiceProtos.SaveStartResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse 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.PSMasterServiceProtos.SaveStartResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse 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.PSMasterServiceProtos.SaveStartResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse 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.PSMasterServiceProtos.SaveStartResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse 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.PSMasterServiceProtos.SaveStartResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse 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.PSMasterServiceProtos.SaveStartResponse 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 SaveStartResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_SaveStartResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.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.PSMasterServiceProtos.internal_static_SaveStartResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.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.PSMasterServiceProtos.SaveStartResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SaveStartResponse)
    }

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

    // @@protoc_insertion_point(class_scope:SaveStartResponse)
  }

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

    // required .PSAttemptIdProto psAttemptId = 1;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    boolean hasPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId();
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder();

    // required int32 requestId = 2;
    /**
     * required int32 requestId = 2;
     */
    boolean hasRequestId();
    /**
     * required int32 requestId = 2;
     */
    int getRequestId();

    // required int32 subRequestId = 3;
    /**
     * required int32 subRequestId = 3;
     */
    boolean hasSubRequestId();
    /**
     * required int32 subRequestId = 3;
     */
    int getSubRequestId();
  }
  /**
   * Protobuf type {@code LoadStartRequest}
   */
  public static final class LoadStartRequest extends
      com.google.protobuf.GeneratedMessage
      implements LoadStartRequestOrBuilder {
    // Use LoadStartRequest.newBuilder() to construct.
    private LoadStartRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoadStartRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoadStartRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoadStartRequest(
        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.PSAttemptIdProto.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = psAttemptId_.toBuilder();
              }
              psAttemptId_ = input.readMessage(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(psAttemptId_);
                psAttemptId_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              requestId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              subRequestId_ = 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.PSMasterServiceProtos.internal_static_LoadStartRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PSAttemptIdProto psAttemptId = 1;
    public static final int PSATTEMPTID_FIELD_NUMBER = 1;
    private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_;
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public boolean hasPsAttemptId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
      return psAttemptId_;
    }
    /**
     * required .PSAttemptIdProto psAttemptId = 1;
     */
    public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
      return psAttemptId_;
    }

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

    // required int32 subRequestId = 3;
    public static final int SUBREQUESTID_FIELD_NUMBER = 3;
    private int subRequestId_;
    /**
     * required int32 subRequestId = 3;
     */
    public boolean hasSubRequestId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 subRequestId = 3;
     */
    public int getSubRequestId() {
      return subRequestId_;
    }

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

      if (!hasPsAttemptId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSubRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPsAttemptId().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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, requestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, subRequestId_);
      }
      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, psAttemptId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, requestId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, subRequestId_);
      }
      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.PSMasterServiceProtos.LoadStartRequest)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest) obj;

      boolean result = true;
      result = result && (hasPsAttemptId() == other.hasPsAttemptId());
      if (hasPsAttemptId()) {
        result = result && getPsAttemptId()
            .equals(other.getPsAttemptId());
      }
      result = result && (hasRequestId() == other.hasRequestId());
      if (hasRequestId()) {
        result = result && (getRequestId()
            == other.getRequestId());
      }
      result = result && (hasSubRequestId() == other.hasSubRequestId());
      if (hasSubRequestId()) {
        result = result && (getSubRequestId()
            == other.getSubRequestId());
      }
      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 (hasPsAttemptId()) {
        hash = (37 * hash) + PSATTEMPTID_FIELD_NUMBER;
        hash = (53 * hash) + getPsAttemptId().hashCode();
      }
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      if (hasSubRequestId()) {
        hash = (37 * hash) + SUBREQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getSubRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.LoadStartRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.LoadStartRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.LoadStartRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.LoadStartRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.LoadStartRequest 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 LoadStartRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        subRequestId_ = 0;
        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.PSMasterServiceProtos.internal_static_LoadStartRequest_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.getDefaultInstance();
      }

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

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest buildPartial() {
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest result = new com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (psAttemptIdBuilder_ == null) {
          result.psAttemptId_ = psAttemptId_;
        } else {
          result.psAttemptId_ = psAttemptIdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.subRequestId_ = subRequestId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.getDefaultInstance()) return this;
        if (other.hasPsAttemptId()) {
          mergePsAttemptId(other.getPsAttemptId());
        }
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasSubRequestId()) {
          setSubRequestId(other.getSubRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPsAttemptId()) {
          
          return false;
        }
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasSubRequestId()) {
          
          return false;
        }
        if (!getPsAttemptId().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.PSMasterServiceProtos.LoadStartRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PSAttemptIdProto psAttemptId = 1;
      private com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> psAttemptIdBuilder_;
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public boolean hasPsAttemptId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto getPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          return psAttemptId_;
        } else {
          return psAttemptIdBuilder_.getMessage();
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          psAttemptId_ = value;
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder setPsAttemptId(
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder builderForValue) {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = builderForValue.build();
          onChanged();
        } else {
          psAttemptIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder mergePsAttemptId(com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto value) {
        if (psAttemptIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              psAttemptId_ != com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance()) {
            psAttemptId_ =
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.newBuilder(psAttemptId_).mergeFrom(value).buildPartial();
          } else {
            psAttemptId_ = value;
          }
          onChanged();
        } else {
          psAttemptIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public Builder clearPsAttemptId() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptId_ = com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.getDefaultInstance();
          onChanged();
        } else {
          psAttemptIdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder getPsAttemptIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPsAttemptIdFieldBuilder().getBuilder();
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      public com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder getPsAttemptIdOrBuilder() {
        if (psAttemptIdBuilder_ != null) {
          return psAttemptIdBuilder_.getMessageOrBuilder();
        } else {
          return psAttemptId_;
        }
      }
      /**
       * required .PSAttemptIdProto psAttemptId = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder> 
          getPsAttemptIdFieldBuilder() {
        if (psAttemptIdBuilder_ == null) {
          psAttemptIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProto.Builder, com.tencent.angel.protobuf.generated.MLProtos.PSAttemptIdProtoOrBuilder>(
                  psAttemptId_,
                  getParentForChildren(),
                  isClean());
          psAttemptId_ = null;
        }
        return psAttemptIdBuilder_;
      }

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

      // required int32 subRequestId = 3;
      private int subRequestId_ ;
      /**
       * required int32 subRequestId = 3;
       */
      public boolean hasSubRequestId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 subRequestId = 3;
       */
      public int getSubRequestId() {
        return subRequestId_;
      }
      /**
       * required int32 subRequestId = 3;
       */
      public Builder setSubRequestId(int value) {
        bitField0_ |= 0x00000004;
        subRequestId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 subRequestId = 3;
       */
      public Builder clearSubRequestId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        subRequestId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LoadStartRequest)
    }

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

    // @@protoc_insertion_point(class_scope:LoadStartRequest)
  }

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

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

    public LoadStartResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoadStartResponse(
        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.PSMasterServiceProtos.internal_static_LoadStartResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public LoadStartResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LoadStartResponse(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.PSMasterServiceProtos.LoadStartResponse)) {
        return super.equals(obj);
      }
      com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse other = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse) 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.PSMasterServiceProtos.LoadStartResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse 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.PSMasterServiceProtos.LoadStartResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse 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.PSMasterServiceProtos.LoadStartResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse 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.PSMasterServiceProtos.LoadStartResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse 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.PSMasterServiceProtos.LoadStartResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse 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.PSMasterServiceProtos.LoadStartResponse 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 LoadStartResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.internal_static_LoadStartResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.class, com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.Builder.class);
      }

      // Construct using com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.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.PSMasterServiceProtos.internal_static_LoadStartResponse_descriptor;
      }

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse getDefaultInstanceForType() {
        return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.getDefaultInstance();
      }

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

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

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

      public Builder mergeFrom(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse other) {
        if (other == com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.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.PSMasterServiceProtos.LoadStartResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LoadStartResponse)
    }

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

    // @@protoc_insertion_point(class_scope:LoadStartResponse)
  }

  /**
   * Protobuf service {@code PSMasterService}
   */
  public static abstract class PSMasterService
      implements com.google.protobuf.Service {
    protected PSMasterService() {}

    public interface Interface {
      /**
       * rpc psRegister(.PSRegisterRequest) returns (.PSRegisterResponse);
       */
      public abstract void psRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc psReport(.PSReportRequest) returns (.PSReportResponse);
       */
      public abstract void psReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc psDone(.PSDoneRequest) returns (.PSDoneResponse);
       */
      public abstract void psDone(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc psError(.PSErrorRequest) returns (.PSErrorResponse);
       */
      public abstract void psError(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getExecuteUnitDesc(.GetExecuteUnitDescRequest) returns (.GetExecuteUnitDescResponse);
       */
      public abstract void getExecuteUnitDesc(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getTaskMatrixClocks(.GetTaskMatrixClockRequest) returns (.GetTaskMatrixClockResponse);
       */
      public abstract void getTaskMatrixClocks(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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 getPSLocation(.GetPSLocationRequest) returns (.GetPSLocationReponse);
       */
      public abstract void getPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getPartLocation(.GetPartLocationRequest) returns (.GetPartLocationResponse);
       */
      public abstract void getPartLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getIteration(.GetIterationRequest) returns (.GetIterationResponse);
       */
      public abstract void getIteration(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc getPSMatricesMeta(.GetPSMatricesMetaRequest) returns (.GetPSMatricesResponse);
       */
      public abstract void getPSMatricesMeta(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc saveFinish(.SaveFinishRequest) returns (.SaveFinishResponse);
       */
      public abstract void saveFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc loadFinish(.LoadFinishRequest) returns (.LoadFinishResponse);
       */
      public abstract void loadFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc saveStart(.SaveStartRequest) returns (.SaveStartResponse);
       */
      public abstract void saveStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request,
          com.google.protobuf.RpcCallback done);

      /**
       * rpc loadStart(.LoadStartRequest) returns (.LoadStartResponse);
       */
      public abstract void loadStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest request,
          com.google.protobuf.RpcCallback done);

    }

    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new PSMasterService() {
        @java.lang.Override
        public  void psRegister(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.psRegister(controller, request, done);
        }

        @java.lang.Override
        public  void psReport(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.psReport(controller, request, done);
        }

        @java.lang.Override
        public  void psDone(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.psDone(controller, request, done);
        }

        @java.lang.Override
        public  void psError(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.psError(controller, request, done);
        }

        @java.lang.Override
        public  void getExecuteUnitDesc(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getExecuteUnitDesc(controller, request, done);
        }

        @java.lang.Override
        public  void getTaskMatrixClocks(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getTaskMatrixClocks(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 getPSLocation(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getPSLocation(controller, request, done);
        }

        @java.lang.Override
        public  void getPartLocation(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getPartLocation(controller, request, done);
        }

        @java.lang.Override
        public  void getIteration(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getIteration(controller, request, done);
        }

        @java.lang.Override
        public  void getPSMatricesMeta(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.getPSMatricesMeta(controller, request, done);
        }

        @java.lang.Override
        public  void saveFinish(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.saveFinish(controller, request, done);
        }

        @java.lang.Override
        public  void loadFinish(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.loadFinish(controller, request, done);
        }

        @java.lang.Override
        public  void saveStart(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.saveStart(controller, request, done);
        }

        @java.lang.Override
        public  void loadStart(
            com.google.protobuf.RpcController controller,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.loadStart(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.psRegister(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest)request);
            case 1:
              return impl.psReport(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest)request);
            case 2:
              return impl.psDone(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest)request);
            case 3:
              return impl.psError(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest)request);
            case 4:
              return impl.getExecuteUnitDesc(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest)request);
            case 5:
              return impl.getTaskMatrixClocks(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest)request);
            case 6:
              return impl.getAllPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest)request);
            case 7:
              return impl.getPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest)request);
            case 8:
              return impl.getPartLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest)request);
            case 9:
              return impl.getIteration(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest)request);
            case 10:
              return impl.getPSMatricesMeta(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest)request);
            case 11:
              return impl.saveFinish(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest)request);
            case 12:
              return impl.loadFinish(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest)request);
            case 13:
              return impl.saveStart(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest)request);
            case 14:
              return impl.loadStart(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest)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.PSMasterServiceProtos.PSRegisterRequest.getDefaultInstance();
            case 1:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.getDefaultInstance();
            case 2:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.getDefaultInstance();
            case 3:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.getDefaultInstance();
            case 4:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.getDefaultInstance();
            case 5:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.getDefaultInstance();
            case 6:
              return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest.getDefaultInstance();
            case 7:
              return com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest.getDefaultInstance();
            case 8:
              return com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest.getDefaultInstance();
            case 9:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.getDefaultInstance();
            case 10:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.getDefaultInstance();
            case 11:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.getDefaultInstance();
            case 12:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.getDefaultInstance();
            case 13:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.getDefaultInstance();
            case 14:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.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.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance();
            case 1:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance();
            case 2:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance();
            case 3:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance();
            case 4:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance();
            case 5:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.getDefaultInstance();
            case 6:
              return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance();
            case 7:
              return com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.getDefaultInstance();
            case 8:
              return com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.getDefaultInstance();
            case 9:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance();
            case 10:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance();
            case 11:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance();
            case 12:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance();
            case 13:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance();
            case 14:
              return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

      };
    }

    /**
     * rpc psRegister(.PSRegisterRequest) returns (.PSRegisterResponse);
     */
    public abstract void psRegister(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc psReport(.PSReportRequest) returns (.PSReportResponse);
     */
    public abstract void psReport(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc psDone(.PSDoneRequest) returns (.PSDoneResponse);
     */
    public abstract void psDone(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc psError(.PSErrorRequest) returns (.PSErrorResponse);
     */
    public abstract void psError(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getExecuteUnitDesc(.GetExecuteUnitDescRequest) returns (.GetExecuteUnitDescResponse);
     */
    public abstract void getExecuteUnitDesc(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getTaskMatrixClocks(.GetTaskMatrixClockRequest) returns (.GetTaskMatrixClockResponse);
     */
    public abstract void getTaskMatrixClocks(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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 getPSLocation(.GetPSLocationRequest) returns (.GetPSLocationReponse);
     */
    public abstract void getPSLocation(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getPartLocation(.GetPartLocationRequest) returns (.GetPartLocationResponse);
     */
    public abstract void getPartLocation(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getIteration(.GetIterationRequest) returns (.GetIterationResponse);
     */
    public abstract void getIteration(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc getPSMatricesMeta(.GetPSMatricesMetaRequest) returns (.GetPSMatricesResponse);
     */
    public abstract void getPSMatricesMeta(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc saveFinish(.SaveFinishRequest) returns (.SaveFinishResponse);
     */
    public abstract void saveFinish(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc loadFinish(.LoadFinishRequest) returns (.LoadFinishResponse);
     */
    public abstract void loadFinish(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc saveStart(.SaveStartRequest) returns (.SaveStartResponse);
     */
    public abstract void saveStart(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request,
        com.google.protobuf.RpcCallback done);

    /**
     * rpc loadStart(.LoadStartRequest) returns (.LoadStartResponse);
     */
    public abstract void loadStart(
        com.google.protobuf.RpcController controller,
        com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest request,
        com.google.protobuf.RpcCallback done);

    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.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.psRegister(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.psReport(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.psDone(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.psError(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.getExecuteUnitDesc(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.getTaskMatrixClocks(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.getAllPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.getPSLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.getPartLocation(controller, (com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.getIteration(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 10:
          this.getPSMatricesMeta(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 11:
          this.saveFinish(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 12:
          this.loadFinish(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 13:
          this.saveStart(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 14:
          this.loadStart(controller, (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest)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.PSMasterServiceProtos.PSRegisterRequest.getDefaultInstance();
        case 1:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest.getDefaultInstance();
        case 2:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest.getDefaultInstance();
        case 3:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest.getDefaultInstance();
        case 4:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest.getDefaultInstance();
        case 5:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest.getDefaultInstance();
        case 6:
          return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationRequest.getDefaultInstance();
        case 7:
          return com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest.getDefaultInstance();
        case 8:
          return com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest.getDefaultInstance();
        case 9:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest.getDefaultInstance();
        case 10:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest.getDefaultInstance();
        case 11:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest.getDefaultInstance();
        case 12:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest.getDefaultInstance();
        case 13:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest.getDefaultInstance();
        case 14:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest.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.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance();
        case 1:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance();
        case 2:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance();
        case 3:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance();
        case 4:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance();
        case 5:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.getDefaultInstance();
        case 6:
          return com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance();
        case 7:
          return com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.getDefaultInstance();
        case 8:
          return com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.getDefaultInstance();
        case 9:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance();
        case 10:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance();
        case 11:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance();
        case 12:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance();
        case 13:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance();
        case 14:
          return com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.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.PSMasterServiceProtos.PSMasterService 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 psRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance()));
      }

      public  void psReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance()));
      }

      public  void psDone(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance()));
      }

      public  void psError(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance()));
      }

      public  void getExecuteUnitDesc(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance()));
      }

      public  void getTaskMatrixClocks(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.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(6),
          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 getPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.class,
            com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.getDefaultInstance()));
      }

      public  void getPartLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.class,
            com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.getDefaultInstance()));
      }

      public  void getIteration(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance()));
      }

      public  void getPSMatricesMeta(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(10),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance()));
      }

      public  void saveFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(11),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance()));
      }

      public  void loadFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(12),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance()));
      }

      public  void saveStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(13),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance()));
      }

      public  void loadStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(14),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.class,
            com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.getDefaultInstance()));
      }
    }

    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }

    public interface BlockingInterface {
      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse psRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse psReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse psDone(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse psError(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse getExecuteUnitDesc(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse getTaskMatrixClocks(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest 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.MLProtos.GetPSLocationReponse getPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse getPartLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse getIteration(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse getPSMatricesMeta(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse saveFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse loadFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse saveStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request)
          throws com.google.protobuf.ServiceException;

      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse loadStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest 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.PSMasterServiceProtos.PSRegisterResponse psRegister(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse psReport(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSReportResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse psDone(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSDoneResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse psError(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSErrorResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse getExecuteUnitDesc(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetExecuteUnitDescResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse getTaskMatrixClocks(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetTaskMatrixClockResponse.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(6),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetAllPSLocationResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse getPSLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetPSLocationReponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse getPartLocation(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          com.tencent.angel.protobuf.generated.MLProtos.GetPartLocationResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse getIteration(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetIterationResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse getPSMatricesMeta(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesMetaRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(10),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.GetPSMatricesResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse saveFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(11),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveFinishResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse loadFinish(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(12),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadFinishResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse saveStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(13),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.SaveStartResponse.getDefaultInstance());
      }


      public com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse loadStart(
          com.google.protobuf.RpcController controller,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(14),
          controller,
          request,
          com.tencent.angel.protobuf.generated.PSMasterServiceProtos.LoadStartResponse.getDefaultInstance());
      }

    }

    // @@protoc_insertion_point(class_scope:PSMasterService)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSReportRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSReportRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_MatrixReportProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_MatrixReportProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatricesSaveResultProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatricesSaveResultProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatricesLoadResultProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatricesLoadResultProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PartReportProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PartReportProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSReportResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSReportResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatricesSaveContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatricesSaveContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatrixSaveContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatrixSaveContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatricesLoadContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatricesLoadContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSMatrixLoadContextProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSMatrixLoadContextProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_RecoverPartKeyProto_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_RecoverPartKeyProto_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ExecuteUnitDesc_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ExecuteUnitDesc_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSRegisterRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSRegisterRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSRegisterResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSRegisterResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSDoneRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSDoneRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSDoneResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSDoneResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSErrorRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSErrorRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PSErrorResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PSErrorResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetExecuteUnitDescRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetExecuteUnitDescRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetExecuteUnitDescResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetExecuteUnitDescResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetTaskMatrixClockRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetTaskMatrixClockRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_TaskMatrixClock_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_TaskMatrixClock_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetTaskMatrixClockResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetTaskMatrixClockResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetIterationRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetIterationRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetIterationResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetIterationResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetPSMatricesMetaRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetPSMatricesMetaRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_GetPSMatricesResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_GetPSMatricesResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveStartRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveStartRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_SaveStartResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SaveStartResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadStartRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadStartRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoadStartResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoadStartResponse_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\025PSMasterService.proto\032\010ML.proto\"\221\001\n\017PS" +
      "ReportRequest\022&\n\013psAttemptId\030\001 \002(\0132\021.PSA" +
      "ttemptIdProto\022)\n\rmatrixReports\030\002 \003(\0132\022.M" +
      "atrixReportProto\022\023\n\013diagnostics\030\003 \001(\t\022\026\n" +
      "\007metrics\030\004 \003(\0132\005.Pair\"`\n\021MatrixReportPro" +
      "to\022\020\n\010matrixId\030\001 \002(\005\022\022\n\nmatrixName\030\002 \002(\t" +
      "\022%\n\013partReports\030\003 \003(\0132\020.PartReportProto\"" +
      "j\n\031PSMatricesSaveResultProto\022\021\n\trequestI" +
      "d\030\001 \002(\005\022\024\n\014subRequestId\030\002 \002(\005\022\021\n\tsaveSta" +
      "te\030\003 \002(\005\022\021\n\tfailedLog\030\004 \001(\t\"j\n\031PSMatrice",
      "sLoadResultProto\022\021\n\trequestId\030\001 \002(\005\022\024\n\014s" +
      "ubRequestId\030\002 \002(\005\022\021\n\tloadState\030\003 \002(\005\022\021\n\t" +
      "failedLog\030\004 \001(\t\"1\n\017PartReportProto\022\016\n\006pa" +
      "rtId\030\001 \002(\005\022\016\n\006status\030\002 \002(\005\"\210\003\n\020PSReportR" +
      "esponse\0220\n\tpsCommand\030\001 \002(\0162\017.PSCommandPr" +
      "oto:\014PSCOMMAND_OK\022,\n\022needCreateMatrices\030" +
      "\002 \003(\0132\020.MatrixMetaProto\022\034\n\024needReleaseMa" +
      "trixIds\030\003 \003(\005\022\025\n\rsavingRequest\030\004 \001(\005\022\026\n\016" +
      "loadingRequest\030\005 \001(\005\0225\n\020needSaveMatrices" +
      "\030\006 \001(\0132\033.PSMatricesSaveContextProto\0225\n\020n",
      "eedLoadMatrices\030\007 \001(\0132\033.PSMatricesLoadCo" +
      "ntextProto\022.\n\020needRecoverParts\030\010 \003(\0132\024.R" +
      "ecoverPartKeyProto\022)\n\017executeUnitDesc\030\t " +
      "\001(\0132\020.ExecuteUnitDesc\"y\n\032PSMatricesSaveC" +
      "ontextProto\022\021\n\trequestId\030\001 \002(\005\022\024\n\014subReq" +
      "uestId\030\002 \002(\005\0222\n\017subSaveContexts\030\003 \003(\0132\031." +
      "PSMatrixSaveContextProto\"\243\001\n\030PSMatrixSav" +
      "eContextProto\022\020\n\010matrixId\030\001 \002(\005\022\017\n\007partI" +
      "ds\030\002 \003(\005\022\022\n\nrowIndexes\030\003 \003(\005\022\020\n\010savePath" +
      "\030\004 \002(\t\022\027\n\017formatClassName\030\005 \002(\t\022\022\n\nclone",
      "First\030\006 \002(\010\022\021\n\tsortFirst\030\007 \002(\010\"y\n\032PSMatr" +
      "icesLoadContextProto\022\021\n\trequestId\030\001 \002(\005\022" +
      "\024\n\014subRequestId\030\002 \002(\005\0222\n\017subLoadContexts" +
      "\030\003 \003(\0132\031.PSMatrixLoadContextProto\"h\n\030PSM" +
      "atrixLoadContextProto\022\020\n\010matrixId\030\001 \002(\005\022" +
      "\017\n\007partIds\030\002 \003(\005\022\020\n\010loadPath\030\003 \002(\t\022\027\n\017fo" +
      "rmatClassName\030\004 \002(\t\"n\n\023RecoverPartKeyPro" +
      "to\022\020\n\010matrixId\030\001 \002(\005\022\016\n\006partId\030\002 \002(\005\022\030\n\004" +
      "psId\030\003 \002(\0132\n.PSIdProto\022\033\n\003loc\030\004 \002(\0132\016.Lo" +
      "cationProto\"\252\001\n\017ExecuteUnitDesc\022\033\n\023total",
      "WorkerGroupNum\030\001 \002(\005\022\034\n\024activeWorkerGrou" +
      "pNum\030\002 \002(\005\022\026\n\016totalWorkerNum\030\003 \002(\005\022\027\n\017ac" +
      "tiveWorkerNum\030\004 \002(\005\022\024\n\014totalTaskNum\030\005 \002(" +
      "\005\022\025\n\ractiveTaskNum\030\006 \002(\005\"]\n\021PSRegisterRe" +
      "quest\022&\n\013psAttemptId\030\001 \002(\0132\021.PSAttemptId" +
      "Proto\022 \n\010location\030\002 \002(\0132\016.LocationProto\"" +
      "8\n\022PSRegisterResponse\022\"\n\tpsCommand\030\001 \002(\016" +
      "2\017.PSCommandProto\"7\n\rPSDoneRequest\022&\n\013ps" +
      "AttemptId\030\001 \002(\0132\021.PSAttemptIdProto\"\020\n\016PS" +
      "DoneResponse\"E\n\016PSErrorRequest\022&\n\013psAtte",
      "mptId\030\001 \002(\0132\021.PSAttemptIdProto\022\013\n\003msg\030\002 " +
      "\002(\t\"\021\n\017PSErrorResponse\"\033\n\031GetExecuteUnit" +
      "DescRequest\"G\n\032GetExecuteUnitDescRespons" +
      "e\022)\n\017executeUnitDesc\030\001 \002(\0132\020.ExecuteUnit" +
      "Desc\"\033\n\031GetTaskMatrixClockRequest\"S\n\017Tas" +
      "kMatrixClock\022\034\n\006taskId\030\001 \002(\0132\014.TaskIdPro" +
      "to\022\"\n\014matrixClocks\030\002 \003(\0132\014.MatrixClock\"H" +
      "\n\032GetTaskMatrixClockResponse\022*\n\020taskMatr" +
      "ixClocks\030\001 \003(\0132\020.TaskMatrixClock\"\025\n\023GetI" +
      "terationRequest\")\n\024GetIterationResponse\022",
      "\021\n\titeration\030\001 \002(\005\"4\n\030GetPSMatricesMetaR" +
      "equest\022\030\n\004psId\030\001 \002(\0132\n.PSIdProto\"?\n\025GetP" +
      "SMatricesResponse\022&\n\014matricesMeta\030\001 \003(\0132" +
      "\020.MatrixMetaProto\"g\n\021SaveFinishRequest\022&" +
      "\n\013psAttemptId\030\001 \002(\0132\021.PSAttemptIdProto\022*" +
      "\n\006result\030\002 \002(\0132\032.PSMatricesSaveResultPro" +
      "to\"\024\n\022SaveFinishResponse\"g\n\021LoadFinishRe" +
      "quest\022&\n\013psAttemptId\030\001 \002(\0132\021.PSAttemptId" +
      "Proto\022*\n\006result\030\002 \002(\0132\032.PSMatricesLoadRe" +
      "sultProto\"\024\n\022LoadFinishResponse\"c\n\020SaveS",
      "tartRequest\022&\n\013psAttemptId\030\001 \002(\0132\021.PSAtt" +
      "emptIdProto\022\021\n\trequestId\030\002 \002(\005\022\024\n\014subReq" +
      "uestId\030\003 \002(\005\"\023\n\021SaveStartResponse\"c\n\020Loa" +
      "dStartRequest\022&\n\013psAttemptId\030\001 \002(\0132\021.PSA" +
      "ttemptIdProto\022\021\n\trequestId\030\002 \002(\005\022\024\n\014subR" +
      "equestId\030\003 \002(\005\"\023\n\021LoadStartResponse*\225\001\n\016" +
      "PSCommandProto\022\020\n\014PSCOMMAND_OK\020\001\022\024\n\020PSCO" +
      "MMAND_RESYNC\020\002\022\026\n\022PSCOMMAND_SHUTDOWN\020\003\022\026" +
      "\n\022PSCOMMAND_REGISTER\020\004\022\024\n\020PSCOMMAND_COMM" +
      "IT\020\005\022\025\n\021PSCOMMAND_INVALID\020\0062\232\007\n\017PSMaster",
      "Service\0225\n\npsRegister\022\022.PSRegisterReques" +
      "t\032\023.PSRegisterResponse\022/\n\010psReport\022\020.PSR" +
      "eportRequest\032\021.PSReportResponse\022)\n\006psDon" +
      "e\022\016.PSDoneRequest\032\017.PSDoneResponse\022,\n\007ps" +
      "Error\022\017.PSErrorRequest\032\020.PSErrorResponse" +
      "\022M\n\022getExecuteUnitDesc\022\032.GetExecuteUnitD" +
      "escRequest\032\033.GetExecuteUnitDescResponse\022" +
      "N\n\023getTaskMatrixClocks\022\032.GetTaskMatrixCl" +
      "ockRequest\032\033.GetTaskMatrixClockResponse\022" +
      "G\n\020getAllPSLocation\022\030.GetAllPSLocationRe",
      "quest\032\031.GetAllPSLocationResponse\022=\n\rgetP" +
      "SLocation\022\025.GetPSLocationRequest\032\025.GetPS" +
      "LocationReponse\022D\n\017getPartLocation\022\027.Get" +
      "PartLocationRequest\032\030.GetPartLocationRes" +
      "ponse\022;\n\014getIteration\022\024.GetIterationRequ" +
      "est\032\025.GetIterationResponse\022F\n\021getPSMatri" +
      "cesMeta\022\031.GetPSMatricesMetaRequest\032\026.Get" +
      "PSMatricesResponse\0225\n\nsaveFinish\022\022.SaveF" +
      "inishRequest\032\023.SaveFinishResponse\0225\n\nloa" +
      "dFinish\022\022.LoadFinishRequest\032\023.LoadFinish",
      "Response\0222\n\tsaveStart\022\021.SaveStartRequest" +
      "\032\022.SaveStartResponse\0222\n\tloadStart\022\021.Load" +
      "StartRequest\032\022.LoadStartResponseBE\n$com." +
      "tencent.angel.protobuf.generatedB\025PSMast" +
      "erServiceProtosH\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_PSReportRequest_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_PSReportRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSReportRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "MatrixReports", "Diagnostics", "Metrics", });
          internal_static_MatrixReportProto_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_MatrixReportProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_MatrixReportProto_descriptor,
              new java.lang.String[] { "MatrixId", "MatrixName", "PartReports", });
          internal_static_PSMatricesSaveResultProto_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_PSMatricesSaveResultProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatricesSaveResultProto_descriptor,
              new java.lang.String[] { "RequestId", "SubRequestId", "SaveState", "FailedLog", });
          internal_static_PSMatricesLoadResultProto_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_PSMatricesLoadResultProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatricesLoadResultProto_descriptor,
              new java.lang.String[] { "RequestId", "SubRequestId", "LoadState", "FailedLog", });
          internal_static_PartReportProto_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_PartReportProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PartReportProto_descriptor,
              new java.lang.String[] { "PartId", "Status", });
          internal_static_PSReportResponse_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_PSReportResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSReportResponse_descriptor,
              new java.lang.String[] { "PsCommand", "NeedCreateMatrices", "NeedReleaseMatrixIds", "SavingRequest", "LoadingRequest", "NeedSaveMatrices", "NeedLoadMatrices", "NeedRecoverParts", "ExecuteUnitDesc", });
          internal_static_PSMatricesSaveContextProto_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_PSMatricesSaveContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatricesSaveContextProto_descriptor,
              new java.lang.String[] { "RequestId", "SubRequestId", "SubSaveContexts", });
          internal_static_PSMatrixSaveContextProto_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_PSMatrixSaveContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatrixSaveContextProto_descriptor,
              new java.lang.String[] { "MatrixId", "PartIds", "RowIndexes", "SavePath", "FormatClassName", "CloneFirst", "SortFirst", });
          internal_static_PSMatricesLoadContextProto_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_PSMatricesLoadContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatricesLoadContextProto_descriptor,
              new java.lang.String[] { "RequestId", "SubRequestId", "SubLoadContexts", });
          internal_static_PSMatrixLoadContextProto_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_PSMatrixLoadContextProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSMatrixLoadContextProto_descriptor,
              new java.lang.String[] { "MatrixId", "PartIds", "LoadPath", "FormatClassName", });
          internal_static_RecoverPartKeyProto_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_RecoverPartKeyProto_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_RecoverPartKeyProto_descriptor,
              new java.lang.String[] { "MatrixId", "PartId", "PsId", "Loc", });
          internal_static_ExecuteUnitDesc_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_ExecuteUnitDesc_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ExecuteUnitDesc_descriptor,
              new java.lang.String[] { "TotalWorkerGroupNum", "ActiveWorkerGroupNum", "TotalWorkerNum", "ActiveWorkerNum", "TotalTaskNum", "ActiveTaskNum", });
          internal_static_PSRegisterRequest_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_PSRegisterRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSRegisterRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "Location", });
          internal_static_PSRegisterResponse_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_PSRegisterResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSRegisterResponse_descriptor,
              new java.lang.String[] { "PsCommand", });
          internal_static_PSDoneRequest_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_PSDoneRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSDoneRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", });
          internal_static_PSDoneResponse_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_PSDoneResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSDoneResponse_descriptor,
              new java.lang.String[] { });
          internal_static_PSErrorRequest_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_PSErrorRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSErrorRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "Msg", });
          internal_static_PSErrorResponse_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_PSErrorResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PSErrorResponse_descriptor,
              new java.lang.String[] { });
          internal_static_GetExecuteUnitDescRequest_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_GetExecuteUnitDescRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetExecuteUnitDescRequest_descriptor,
              new java.lang.String[] { });
          internal_static_GetExecuteUnitDescResponse_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_GetExecuteUnitDescResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetExecuteUnitDescResponse_descriptor,
              new java.lang.String[] { "ExecuteUnitDesc", });
          internal_static_GetTaskMatrixClockRequest_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_GetTaskMatrixClockRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetTaskMatrixClockRequest_descriptor,
              new java.lang.String[] { });
          internal_static_TaskMatrixClock_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_TaskMatrixClock_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_TaskMatrixClock_descriptor,
              new java.lang.String[] { "TaskId", "MatrixClocks", });
          internal_static_GetTaskMatrixClockResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_GetTaskMatrixClockResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetTaskMatrixClockResponse_descriptor,
              new java.lang.String[] { "TaskMatrixClocks", });
          internal_static_GetIterationRequest_descriptor =
            getDescriptor().getMessageTypes().get(23);
          internal_static_GetIterationRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetIterationRequest_descriptor,
              new java.lang.String[] { });
          internal_static_GetIterationResponse_descriptor =
            getDescriptor().getMessageTypes().get(24);
          internal_static_GetIterationResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetIterationResponse_descriptor,
              new java.lang.String[] { "Iteration", });
          internal_static_GetPSMatricesMetaRequest_descriptor =
            getDescriptor().getMessageTypes().get(25);
          internal_static_GetPSMatricesMetaRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetPSMatricesMetaRequest_descriptor,
              new java.lang.String[] { "PsId", });
          internal_static_GetPSMatricesResponse_descriptor =
            getDescriptor().getMessageTypes().get(26);
          internal_static_GetPSMatricesResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_GetPSMatricesResponse_descriptor,
              new java.lang.String[] { "MatricesMeta", });
          internal_static_SaveFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(27);
          internal_static_SaveFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveFinishRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "Result", });
          internal_static_SaveFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(28);
          internal_static_SaveFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveFinishResponse_descriptor,
              new java.lang.String[] { });
          internal_static_LoadFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(29);
          internal_static_LoadFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadFinishRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "Result", });
          internal_static_LoadFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(30);
          internal_static_LoadFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadFinishResponse_descriptor,
              new java.lang.String[] { });
          internal_static_SaveStartRequest_descriptor =
            getDescriptor().getMessageTypes().get(31);
          internal_static_SaveStartRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveStartRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "RequestId", "SubRequestId", });
          internal_static_SaveStartResponse_descriptor =
            getDescriptor().getMessageTypes().get(32);
          internal_static_SaveStartResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SaveStartResponse_descriptor,
              new java.lang.String[] { });
          internal_static_LoadStartRequest_descriptor =
            getDescriptor().getMessageTypes().get(33);
          internal_static_LoadStartRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadStartRequest_descriptor,
              new java.lang.String[] { "PsAttemptId", "RequestId", "SubRequestId", });
          internal_static_LoadStartResponse_descriptor =
            getDescriptor().getMessageTypes().get(34);
          internal_static_LoadStartResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoadStartResponse_descriptor,
              new java.lang.String[] { });
          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