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

package cn.muchinfo.rma.protobuf.protoclasses;

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

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

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return Whether the loginPWD field is set.
     */
    boolean hasLoginPWD();
    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return The loginPWD.
     */
    java.lang.String getLoginPWD();
    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return The bytes for loginPWD.
     */
    com.google.protobuf.ByteString
        getLoginPWDBytes();

    /**
     * <pre>
     * uint32 登陆类型
     * </pre>
     *
     * <code>optional uint32 LoginType = 4;</code>
     * @return Whether the loginType field is set.
     */
    boolean hasLoginType();
    /**
     * <pre>
     * uint32 登陆类型
     * </pre>
     *
     * <code>optional uint32 LoginType = 4;</code>
     * @return The loginType.
     */
    int getLoginType();

    /**
     * <pre>
     * uint32 终端软件类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 5;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端软件类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 5;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return Whether the version field is set.
     */
    boolean hasVersion();
    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();

    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return Whether the mobilePhone field is set.
     */
    boolean hasMobilePhone();
    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return The mobilePhone.
     */
    java.lang.String getMobilePhone();
    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return The bytes for mobilePhone.
     */
    com.google.protobuf.ByteString
        getMobilePhoneBytes();

    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return Whether the gUID field is set.
     */
    boolean hasGUID();
    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return The gUID.
     */
    java.lang.String getGUID();
    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return The bytes for gUID.
     */
    com.google.protobuf.ByteString
        getGUIDBytes();

    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return Whether the loginIp field is set.
     */
    boolean hasLoginIp();
    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return The loginIp.
     */
    java.lang.String getLoginIp();
    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return The bytes for loginIp.
     */
    com.google.protobuf.ByteString
        getLoginIpBytes();

    /**
     * <pre>
     * uint32 登陆通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 10;</code>
     * @return Whether the loginPort field is set.
     */
    boolean hasLoginPort();
    /**
     * <pre>
     * uint32 登陆通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 10;</code>
     * @return The loginPort.
     */
    int getLoginPort();

    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return Whether the deviceID field is set.
     */
    boolean hasDeviceID();
    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return The deviceID.
     */
    java.lang.String getDeviceID();
    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return The bytes for deviceID.
     */
    com.google.protobuf.ByteString
        getDeviceIDBytes();

    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return Whether the environmentInfo field is set.
     */
    boolean hasEnvironmentInfo();
    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return The environmentInfo.
     */
    java.lang.String getEnvironmentInfo();
    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return The bytes for environmentInfo.
     */
    com.google.protobuf.ByteString
        getEnvironmentInfoBytes();

    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return Whether the loginCode field is set.
     */
    boolean hasLoginCode();
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return The loginCode.
     */
    java.lang.String getLoginCode();
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return The bytes for loginCode.
     */
    com.google.protobuf.ByteString
        getLoginCodeBytes();
  }
  /**
   * <pre>
   * 用户登录请求 0 1 1
   * </pre>
   *
   * Protobuf type {@code SystemMI1.LoginReq}
   */
  public static final class LoginReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.LoginReq)
      LoginReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LoginReq.newBuilder() to construct.
    private LoginReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginReq() {
      loginPWD_ = "";
      version_ = "";
      mobilePhone_ = "";
      gUID_ = "";
      loginIp_ = "";
      deviceID_ = "";
      environmentInfo_ = "";
      loginCode_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LoginReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              loginID_ = input.readUInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              loginPWD_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              loginType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              clientType_ = input.readUInt32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              version_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              mobilePhone_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              gUID_ = bs;
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              loginIp_ = bs;
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              loginPort_ = input.readUInt32();
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              deviceID_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              environmentInfo_ = bs;
              break;
            }
            case 106: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00001000;
              loginCode_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int LOGINID_FIELD_NUMBER = 2;
    private long loginID_;
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int LOGINPWD_FIELD_NUMBER = 3;
    private volatile java.lang.Object loginPWD_;
    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return Whether the loginPWD field is set.
     */
    @java.lang.Override
    public boolean hasLoginPWD() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return The loginPWD.
     */
    @java.lang.Override
    public java.lang.String getLoginPWD() {
      java.lang.Object ref = loginPWD_;
      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()) {
          loginPWD_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登录密码
     * </pre>
     *
     * <code>optional string LoginPWD = 3;</code>
     * @return The bytes for loginPWD.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLoginPWDBytes() {
      java.lang.Object ref = loginPWD_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginPWD_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINTYPE_FIELD_NUMBER = 4;
    private int loginType_;
    /**
     * <pre>
     * uint32 登陆类型
     * </pre>
     *
     * <code>optional uint32 LoginType = 4;</code>
     * @return Whether the loginType field is set.
     */
    @java.lang.Override
    public boolean hasLoginType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 登陆类型
     * </pre>
     *
     * <code>optional uint32 LoginType = 4;</code>
     * @return The loginType.
     */
    @java.lang.Override
    public int getLoginType() {
      return loginType_;
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 5;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端软件类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 5;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 终端软件类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 5;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int VERSION_FIELD_NUMBER = 6;
    private volatile java.lang.Object version_;
    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      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()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 终端软件版本号
     * </pre>
     *
     * <code>optional string Version = 6;</code>
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MOBILEPHONE_FIELD_NUMBER = 7;
    private volatile java.lang.Object mobilePhone_;
    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return Whether the mobilePhone field is set.
     */
    @java.lang.Override
    public boolean hasMobilePhone() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return The mobilePhone.
     */
    @java.lang.Override
    public java.lang.String getMobilePhone() {
      java.lang.Object ref = mobilePhone_;
      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()) {
          mobilePhone_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 移动电话
     * </pre>
     *
     * <code>optional string MobilePhone = 7;</code>
     * @return The bytes for mobilePhone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMobilePhoneBytes() {
      java.lang.Object ref = mobilePhone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobilePhone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GUID_FIELD_NUMBER = 8;
    private volatile java.lang.Object gUID_;
    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return Whether the gUID field is set.
     */
    @java.lang.Override
    public boolean hasGUID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return The gUID.
     */
    @java.lang.Override
    public java.lang.String getGUID() {
      java.lang.Object ref = gUID_;
      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()) {
          gUID_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 唯一标识码
     * </pre>
     *
     * <code>optional string GUID = 8;</code>
     * @return The bytes for gUID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGUIDBytes() {
      java.lang.Object ref = gUID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        gUID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINIP_FIELD_NUMBER = 9;
    private volatile java.lang.Object loginIp_;
    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return Whether the loginIp field is set.
     */
    @java.lang.Override
    public boolean hasLoginIp() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return The loginIp.
     */
    @java.lang.Override
    public java.lang.String getLoginIp() {
      java.lang.Object ref = loginIp_;
      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()) {
          loginIp_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登录IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 9;</code>
     * @return The bytes for loginIp.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLoginIpBytes() {
      java.lang.Object ref = loginIp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginIp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINPORT_FIELD_NUMBER = 10;
    private int loginPort_;
    /**
     * <pre>
     * uint32 登陆通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 10;</code>
     * @return Whether the loginPort field is set.
     */
    @java.lang.Override
    public boolean hasLoginPort() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint32 登陆通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 10;</code>
     * @return The loginPort.
     */
    @java.lang.Override
    public int getLoginPort() {
      return loginPort_;
    }

    public static final int DEVICEID_FIELD_NUMBER = 11;
    private volatile java.lang.Object deviceID_;
    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return Whether the deviceID field is set.
     */
    @java.lang.Override
    public boolean hasDeviceID() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return The deviceID.
     */
    @java.lang.Override
    public java.lang.String getDeviceID() {
      java.lang.Object ref = deviceID_;
      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()) {
          deviceID_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 设备标识
     * </pre>
     *
     * <code>optional string DeviceID = 11;</code>
     * @return The bytes for deviceID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeviceIDBytes() {
      java.lang.Object ref = deviceID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENVIRONMENTINFO_FIELD_NUMBER = 12;
    private volatile java.lang.Object environmentInfo_;
    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return Whether the environmentInfo field is set.
     */
    @java.lang.Override
    public boolean hasEnvironmentInfo() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return The environmentInfo.
     */
    @java.lang.Override
    public java.lang.String getEnvironmentInfo() {
      java.lang.Object ref = environmentInfo_;
      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()) {
          environmentInfo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 软件环境信息
     * </pre>
     *
     * <code>optional string EnvironmentInfo = 12;</code>
     * @return The bytes for environmentInfo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEnvironmentInfoBytes() {
      java.lang.Object ref = environmentInfo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        environmentInfo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINCODE_FIELD_NUMBER = 13;
    private volatile java.lang.Object loginCode_;
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return Whether the loginCode field is set.
     */
    @java.lang.Override
    public boolean hasLoginCode() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return The loginCode.
     */
    @java.lang.Override
    public java.lang.String getLoginCode() {
      java.lang.Object ref = loginCode_;
      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()) {
          loginCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 13;</code>
     * @return The bytes for loginCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLoginCodeBytes() {
      java.lang.Object ref = loginCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, loginPWD_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, loginType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, clientType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, version_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, mobilePhone_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, gUID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, loginIp_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, loginPort_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, deviceID_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, environmentInfo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, loginCode_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, loginPWD_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, loginType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, clientType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, version_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, mobilePhone_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, gUID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, loginIp_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, loginPort_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, deviceID_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, environmentInfo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, loginCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasLoginPWD() != other.hasLoginPWD()) return false;
      if (hasLoginPWD()) {
        if (!getLoginPWD()
            .equals(other.getLoginPWD())) return false;
      }
      if (hasLoginType() != other.hasLoginType()) return false;
      if (hasLoginType()) {
        if (getLoginType()
            != other.getLoginType()) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasVersion() != other.hasVersion()) return false;
      if (hasVersion()) {
        if (!getVersion()
            .equals(other.getVersion())) return false;
      }
      if (hasMobilePhone() != other.hasMobilePhone()) return false;
      if (hasMobilePhone()) {
        if (!getMobilePhone()
            .equals(other.getMobilePhone())) return false;
      }
      if (hasGUID() != other.hasGUID()) return false;
      if (hasGUID()) {
        if (!getGUID()
            .equals(other.getGUID())) return false;
      }
      if (hasLoginIp() != other.hasLoginIp()) return false;
      if (hasLoginIp()) {
        if (!getLoginIp()
            .equals(other.getLoginIp())) return false;
      }
      if (hasLoginPort() != other.hasLoginPort()) return false;
      if (hasLoginPort()) {
        if (getLoginPort()
            != other.getLoginPort()) return false;
      }
      if (hasDeviceID() != other.hasDeviceID()) return false;
      if (hasDeviceID()) {
        if (!getDeviceID()
            .equals(other.getDeviceID())) return false;
      }
      if (hasEnvironmentInfo() != other.hasEnvironmentInfo()) return false;
      if (hasEnvironmentInfo()) {
        if (!getEnvironmentInfo()
            .equals(other.getEnvironmentInfo())) return false;
      }
      if (hasLoginCode() != other.hasLoginCode()) return false;
      if (hasLoginCode()) {
        if (!getLoginCode()
            .equals(other.getLoginCode())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasLoginPWD()) {
        hash = (37 * hash) + LOGINPWD_FIELD_NUMBER;
        hash = (53 * hash) + getLoginPWD().hashCode();
      }
      if (hasLoginType()) {
        hash = (37 * hash) + LOGINTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getLoginType();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      if (hasMobilePhone()) {
        hash = (37 * hash) + MOBILEPHONE_FIELD_NUMBER;
        hash = (53 * hash) + getMobilePhone().hashCode();
      }
      if (hasGUID()) {
        hash = (37 * hash) + GUID_FIELD_NUMBER;
        hash = (53 * hash) + getGUID().hashCode();
      }
      if (hasLoginIp()) {
        hash = (37 * hash) + LOGINIP_FIELD_NUMBER;
        hash = (53 * hash) + getLoginIp().hashCode();
      }
      if (hasLoginPort()) {
        hash = (37 * hash) + LOGINPORT_FIELD_NUMBER;
        hash = (53 * hash) + getLoginPort();
      }
      if (hasDeviceID()) {
        hash = (37 * hash) + DEVICEID_FIELD_NUMBER;
        hash = (53 * hash) + getDeviceID().hashCode();
      }
      if (hasEnvironmentInfo()) {
        hash = (37 * hash) + ENVIRONMENTINFO_FIELD_NUMBER;
        hash = (53 * hash) + getEnvironmentInfo().hashCode();
      }
      if (hasLoginCode()) {
        hash = (37 * hash) + LOGINCODE_FIELD_NUMBER;
        hash = (53 * hash) + getLoginCode().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户登录请求 0 1 1
     * </pre>
     *
     * Protobuf type {@code SystemMI1.LoginReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.LoginReq)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        loginPWD_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        loginType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        mobilePhone_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        gUID_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        loginIp_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        loginPort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        deviceID_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        environmentInfo_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        loginCode_ = "";
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginReq_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.loginPWD_ = loginPWD_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.loginType_ = loginType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.mobilePhone_ = mobilePhone_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.gUID_ = gUID_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.loginIp_ = loginIp_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.loginPort_ = loginPort_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          to_bitField0_ |= 0x00000400;
        }
        result.deviceID_ = deviceID_;
        if (((from_bitField0_ & 0x00000800) != 0)) {
          to_bitField0_ |= 0x00000800;
        }
        result.environmentInfo_ = environmentInfo_;
        if (((from_bitField0_ & 0x00001000) != 0)) {
          to_bitField0_ |= 0x00001000;
        }
        result.loginCode_ = loginCode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasLoginPWD()) {
          bitField0_ |= 0x00000004;
          loginPWD_ = other.loginPWD_;
          onChanged();
        }
        if (other.hasLoginType()) {
          setLoginType(other.getLoginType());
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000020;
          version_ = other.version_;
          onChanged();
        }
        if (other.hasMobilePhone()) {
          bitField0_ |= 0x00000040;
          mobilePhone_ = other.mobilePhone_;
          onChanged();
        }
        if (other.hasGUID()) {
          bitField0_ |= 0x00000080;
          gUID_ = other.gUID_;
          onChanged();
        }
        if (other.hasLoginIp()) {
          bitField0_ |= 0x00000100;
          loginIp_ = other.loginIp_;
          onChanged();
        }
        if (other.hasLoginPort()) {
          setLoginPort(other.getLoginPort());
        }
        if (other.hasDeviceID()) {
          bitField0_ |= 0x00000400;
          deviceID_ = other.deviceID_;
          onChanged();
        }
        if (other.hasEnvironmentInfo()) {
          bitField0_ |= 0x00000800;
          environmentInfo_ = other.environmentInfo_;
          onChanged();
        }
        if (other.hasLoginCode()) {
          bitField0_ |= 0x00001000;
          loginCode_ = other.loginCode_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000002;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object loginPWD_ = "";
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @return Whether the loginPWD field is set.
       */
      public boolean hasLoginPWD() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @return The loginPWD.
       */
      public java.lang.String getLoginPWD() {
        java.lang.Object ref = loginPWD_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loginPWD_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @return The bytes for loginPWD.
       */
      public com.google.protobuf.ByteString
          getLoginPWDBytes() {
        java.lang.Object ref = loginPWD_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginPWD_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @param value The loginPWD to set.
       * @return This builder for chaining.
       */
      public Builder setLoginPWD(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        loginPWD_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginPWD() {
        bitField0_ = (bitField0_ & ~0x00000004);
        loginPWD_ = getDefaultInstance().getLoginPWD();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录密码
       * </pre>
       *
       * <code>optional string LoginPWD = 3;</code>
       * @param value The bytes for loginPWD to set.
       * @return This builder for chaining.
       */
      public Builder setLoginPWDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        loginPWD_ = value;
        onChanged();
        return this;
      }

      private int loginType_ ;
      /**
       * <pre>
       * uint32 登陆类型
       * </pre>
       *
       * <code>optional uint32 LoginType = 4;</code>
       * @return Whether the loginType field is set.
       */
      @java.lang.Override
      public boolean hasLoginType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 登陆类型
       * </pre>
       *
       * <code>optional uint32 LoginType = 4;</code>
       * @return The loginType.
       */
      @java.lang.Override
      public int getLoginType() {
        return loginType_;
      }
      /**
       * <pre>
       * uint32 登陆类型
       * </pre>
       *
       * <code>optional uint32 LoginType = 4;</code>
       * @param value The loginType to set.
       * @return This builder for chaining.
       */
      public Builder setLoginType(int value) {
        bitField0_ |= 0x00000008;
        loginType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆类型
       * </pre>
       *
       * <code>optional uint32 LoginType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        loginType_ = 0;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端软件类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 5;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 终端软件类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 5;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端软件类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 5;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000010;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端软件类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @return Whether the version field is set.
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 终端软件版本号
       * </pre>
       *
       * <code>optional string Version = 6;</code>
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        version_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object mobilePhone_ = "";
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @return Whether the mobilePhone field is set.
       */
      public boolean hasMobilePhone() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @return The mobilePhone.
       */
      public java.lang.String getMobilePhone() {
        java.lang.Object ref = mobilePhone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mobilePhone_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @return The bytes for mobilePhone.
       */
      public com.google.protobuf.ByteString
          getMobilePhoneBytes() {
        java.lang.Object ref = mobilePhone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobilePhone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @param value The mobilePhone to set.
       * @return This builder for chaining.
       */
      public Builder setMobilePhone(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        mobilePhone_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearMobilePhone() {
        bitField0_ = (bitField0_ & ~0x00000040);
        mobilePhone_ = getDefaultInstance().getMobilePhone();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 移动电话
       * </pre>
       *
       * <code>optional string MobilePhone = 7;</code>
       * @param value The bytes for mobilePhone to set.
       * @return This builder for chaining.
       */
      public Builder setMobilePhoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        mobilePhone_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object gUID_ = "";
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @return Whether the gUID field is set.
       */
      public boolean hasGUID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @return The gUID.
       */
      public java.lang.String getGUID() {
        java.lang.Object ref = gUID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            gUID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @return The bytes for gUID.
       */
      public com.google.protobuf.ByteString
          getGUIDBytes() {
        java.lang.Object ref = gUID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          gUID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @param value The gUID to set.
       * @return This builder for chaining.
       */
      public Builder setGUID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        gUID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearGUID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        gUID_ = getDefaultInstance().getGUID();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 唯一标识码
       * </pre>
       *
       * <code>optional string GUID = 8;</code>
       * @param value The bytes for gUID to set.
       * @return This builder for chaining.
       */
      public Builder setGUIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        gUID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object loginIp_ = "";
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @return Whether the loginIp field is set.
       */
      public boolean hasLoginIp() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @return The loginIp.
       */
      public java.lang.String getLoginIp() {
        java.lang.Object ref = loginIp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loginIp_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @return The bytes for loginIp.
       */
      public com.google.protobuf.ByteString
          getLoginIpBytes() {
        java.lang.Object ref = loginIp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginIp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @param value The loginIp to set.
       * @return This builder for chaining.
       */
      public Builder setLoginIp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        loginIp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginIp() {
        bitField0_ = (bitField0_ & ~0x00000100);
        loginIp_ = getDefaultInstance().getLoginIp();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 9;</code>
       * @param value The bytes for loginIp to set.
       * @return This builder for chaining.
       */
      public Builder setLoginIpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        loginIp_ = value;
        onChanged();
        return this;
      }

      private int loginPort_ ;
      /**
       * <pre>
       * uint32 登陆通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 10;</code>
       * @return Whether the loginPort field is set.
       */
      @java.lang.Override
      public boolean hasLoginPort() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint32 登陆通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 10;</code>
       * @return The loginPort.
       */
      @java.lang.Override
      public int getLoginPort() {
        return loginPort_;
      }
      /**
       * <pre>
       * uint32 登陆通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 10;</code>
       * @param value The loginPort to set.
       * @return This builder for chaining.
       */
      public Builder setLoginPort(int value) {
        bitField0_ |= 0x00000200;
        loginPort_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginPort() {
        bitField0_ = (bitField0_ & ~0x00000200);
        loginPort_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deviceID_ = "";
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @return Whether the deviceID field is set.
       */
      public boolean hasDeviceID() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @return The deviceID.
       */
      public java.lang.String getDeviceID() {
        java.lang.Object ref = deviceID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deviceID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @return The bytes for deviceID.
       */
      public com.google.protobuf.ByteString
          getDeviceIDBytes() {
        java.lang.Object ref = deviceID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @param value The deviceID to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        deviceID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceID() {
        bitField0_ = (bitField0_ & ~0x00000400);
        deviceID_ = getDefaultInstance().getDeviceID();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 设备标识
       * </pre>
       *
       * <code>optional string DeviceID = 11;</code>
       * @param value The bytes for deviceID to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        deviceID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object environmentInfo_ = "";
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @return Whether the environmentInfo field is set.
       */
      public boolean hasEnvironmentInfo() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @return The environmentInfo.
       */
      public java.lang.String getEnvironmentInfo() {
        java.lang.Object ref = environmentInfo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            environmentInfo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @return The bytes for environmentInfo.
       */
      public com.google.protobuf.ByteString
          getEnvironmentInfoBytes() {
        java.lang.Object ref = environmentInfo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          environmentInfo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @param value The environmentInfo to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironmentInfo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        environmentInfo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnvironmentInfo() {
        bitField0_ = (bitField0_ & ~0x00000800);
        environmentInfo_ = getDefaultInstance().getEnvironmentInfo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 软件环境信息
       * </pre>
       *
       * <code>optional string EnvironmentInfo = 12;</code>
       * @param value The bytes for environmentInfo to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironmentInfoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        environmentInfo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object loginCode_ = "";
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @return Whether the loginCode field is set.
       */
      public boolean hasLoginCode() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @return The loginCode.
       */
      public java.lang.String getLoginCode() {
        java.lang.Object ref = loginCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loginCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @return The bytes for loginCode.
       */
      public com.google.protobuf.ByteString
          getLoginCodeBytes() {
        java.lang.Object ref = loginCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @param value The loginCode to set.
       * @return This builder for chaining.
       */
      public Builder setLoginCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        loginCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginCode() {
        bitField0_ = (bitField0_ & ~0x00001000);
        loginCode_ = getDefaultInstance().getLoginCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 13;</code>
       * @param value The bytes for loginCode to set.
       * @return This builder for chaining.
       */
      public Builder setLoginCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        loginCode_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.LoginReq)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.LoginReq)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LoginRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.LoginRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 5;</code>
     * @return Whether the loginUserType field is set.
     */
    boolean hasLoginUserType();
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 5;</code>
     * @return The loginUserType.
     */
    int getLoginUserType();

    /**
     * <pre>
     * uint32 用户状态
     * </pre>
     *
     * <code>optional uint32 AccountStatus = 6;</code>
     * @return Whether the accountStatus field is set.
     */
    boolean hasAccountStatus();
    /**
     * <pre>
     * uint32 用户状态
     * </pre>
     *
     * <code>optional uint32 AccountStatus = 6;</code>
     * @return The accountStatus.
     */
    int getAccountStatus();

    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return Whether the memberUserID field is set.
     */
    boolean hasMemberUserID();
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return The memberUserID.
     */
    int getMemberUserID();

    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return A list containing the accountIDs.
     */
    java.util.List<java.lang.Long> getAccountIDsList();
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return The count of accountIDs.
     */
    int getAccountIDsCount();
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @param index The index of the element to return.
     * @return The accountIDs at the given index.
     */
    long getAccountIDs(int index);

    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <pre>
     * uint64 系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 11;</code>
     * @return Whether the systemTime field is set.
     */
    boolean hasSystemTime();
    /**
     * <pre>
     * uint64 系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 11;</code>
     * @return The systemTime.
     */
    long getSystemTime();

    /**
     * <pre>
     * uint32 是否已更改密码
     * </pre>
     *
     * <code>optional uint32 HasUpdatedPwd = 12;</code>
     * @return Whether the hasUpdatedPwd field is set.
     */
    boolean hasHasUpdatedPwd();
    /**
     * <pre>
     * uint32 是否已更改密码
     * </pre>
     *
     * <code>optional uint32 HasUpdatedPwd = 12;</code>
     * @return The hasUpdatedPwd.
     */
    int getHasUpdatedPwd();

    /**
     * <pre>
     * uint32 当前密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongCnt = 13;</code>
     * @return Whether the pwdWrongCnt field is set.
     */
    boolean hasPwdWrongCnt();
    /**
     * <pre>
     * uint32 当前密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongCnt = 13;</code>
     * @return The pwdWrongCnt.
     */
    int getPwdWrongCnt();

    /**
     * <pre>
     * uint32 登陆账号锁定密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongLockCnt = 14;</code>
     * @return Whether the pwdWrongLockCnt field is set.
     */
    boolean hasPwdWrongLockCnt();
    /**
     * <pre>
     * uint32 登陆账号锁定密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongLockCnt = 14;</code>
     * @return The pwdWrongLockCnt.
     */
    int getPwdWrongLockCnt();

    /**
     * <pre>
     * uint32 登陆账号锁定时长(小时)
     * </pre>
     *
     * <code>optional uint32 LoginLockHourNum = 15;</code>
     * @return Whether the loginLockHourNum field is set.
     */
    boolean hasLoginLockHourNum();
    /**
     * <pre>
     * uint32 登陆账号锁定时长(小时)
     * </pre>
     *
     * <code>optional uint32 LoginLockHourNum = 15;</code>
     * @return The loginLockHourNum.
     */
    int getLoginLockHourNum();

    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return Whether the loginCode field is set.
     */
    boolean hasLoginCode();
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return The loginCode.
     */
    java.lang.String getLoginCode();
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return The bytes for loginCode.
     */
    com.google.protobuf.ByteString
        getLoginCodeBytes();
  }
  /**
   * <pre>
   * 用户登录应答 0 1 2
   * </pre>
   *
   * Protobuf type {@code SystemMI1.LoginRsp}
   */
  public static final class LoginRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.LoginRsp)
      LoginRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LoginRsp.newBuilder() to construct.
    private LoginRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginRsp() {
      retDesc_ = "";
      accountIDs_ = emptyLongList();
      token_ = "";
      loginCode_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LoginRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              loginID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginUserType_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              accountStatus_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              userID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              memberUserID_ = input.readUInt32();
              break;
            }
            case 72: {
              if (!((mutable_bitField0_ & 0x00000100) != 0)) {
                accountIDs_ = newLongList();
                mutable_bitField0_ |= 0x00000100;
              }
              accountIDs_.addLong(input.readUInt64());
              break;
            }
            case 74: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000100) != 0) && input.getBytesUntilLimit() > 0) {
                accountIDs_ = newLongList();
                mutable_bitField0_ |= 0x00000100;
              }
              while (input.getBytesUntilLimit() > 0) {
                accountIDs_.addLong(input.readUInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              token_ = bs;
              break;
            }
            case 88: {
              bitField0_ |= 0x00000200;
              systemTime_ = input.readUInt64();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000400;
              hasUpdatedPwd_ = input.readUInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00000800;
              pwdWrongCnt_ = input.readUInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00001000;
              pwdWrongLockCnt_ = input.readUInt32();
              break;
            }
            case 120: {
              bitField0_ |= 0x00002000;
              loginLockHourNum_ = input.readUInt32();
              break;
            }
            case 130: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00004000;
              loginCode_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000100) != 0)) {
          accountIDs_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINID_FIELD_NUMBER = 4;
    private long loginID_;
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int LOGINUSERTYPE_FIELD_NUMBER = 5;
    private int loginUserType_;
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 5;</code>
     * @return Whether the loginUserType field is set.
     */
    @java.lang.Override
    public boolean hasLoginUserType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 5;</code>
     * @return The loginUserType.
     */
    @java.lang.Override
    public int getLoginUserType() {
      return loginUserType_;
    }

    public static final int ACCOUNTSTATUS_FIELD_NUMBER = 6;
    private int accountStatus_;
    /**
     * <pre>
     * uint32 用户状态
     * </pre>
     *
     * <code>optional uint32 AccountStatus = 6;</code>
     * @return Whether the accountStatus field is set.
     */
    @java.lang.Override
    public boolean hasAccountStatus() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 用户状态
     * </pre>
     *
     * <code>optional uint32 AccountStatus = 6;</code>
     * @return The accountStatus.
     */
    @java.lang.Override
    public int getAccountStatus() {
      return accountStatus_;
    }

    public static final int USERID_FIELD_NUMBER = 7;
    private int userID_;
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int MEMBERUSERID_FIELD_NUMBER = 8;
    private int memberUserID_;
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return Whether the memberUserID field is set.
     */
    @java.lang.Override
    public boolean hasMemberUserID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return The memberUserID.
     */
    @java.lang.Override
    public int getMemberUserID() {
      return memberUserID_;
    }

    public static final int ACCOUNTIDS_FIELD_NUMBER = 9;
    private com.google.protobuf.Internal.LongList accountIDs_;
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return A list containing the accountIDs.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getAccountIDsList() {
      return accountIDs_;
    }
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return The count of accountIDs.
     */
    public int getAccountIDsCount() {
      return accountIDs_.size();
    }
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @param index The index of the element to return.
     * @return The accountIDs at the given index.
     */
    public long getAccountIDs(int index) {
      return accountIDs_.getLong(index);
    }

    public static final int TOKEN_FIELD_NUMBER = 10;
    private volatile java.lang.Object token_;
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return The token.
     */
    @java.lang.Override
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 10;</code>
     * @return The bytes for token.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYSTEMTIME_FIELD_NUMBER = 11;
    private long systemTime_;
    /**
     * <pre>
     * uint64 系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 11;</code>
     * @return Whether the systemTime field is set.
     */
    @java.lang.Override
    public boolean hasSystemTime() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint64 系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 11;</code>
     * @return The systemTime.
     */
    @java.lang.Override
    public long getSystemTime() {
      return systemTime_;
    }

    public static final int HASUPDATEDPWD_FIELD_NUMBER = 12;
    private int hasUpdatedPwd_;
    /**
     * <pre>
     * uint32 是否已更改密码
     * </pre>
     *
     * <code>optional uint32 HasUpdatedPwd = 12;</code>
     * @return Whether the hasUpdatedPwd field is set.
     */
    @java.lang.Override
    public boolean hasHasUpdatedPwd() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint32 是否已更改密码
     * </pre>
     *
     * <code>optional uint32 HasUpdatedPwd = 12;</code>
     * @return The hasUpdatedPwd.
     */
    @java.lang.Override
    public int getHasUpdatedPwd() {
      return hasUpdatedPwd_;
    }

    public static final int PWDWRONGCNT_FIELD_NUMBER = 13;
    private int pwdWrongCnt_;
    /**
     * <pre>
     * uint32 当前密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongCnt = 13;</code>
     * @return Whether the pwdWrongCnt field is set.
     */
    @java.lang.Override
    public boolean hasPwdWrongCnt() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint32 当前密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongCnt = 13;</code>
     * @return The pwdWrongCnt.
     */
    @java.lang.Override
    public int getPwdWrongCnt() {
      return pwdWrongCnt_;
    }

    public static final int PWDWRONGLOCKCNT_FIELD_NUMBER = 14;
    private int pwdWrongLockCnt_;
    /**
     * <pre>
     * uint32 登陆账号锁定密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongLockCnt = 14;</code>
     * @return Whether the pwdWrongLockCnt field is set.
     */
    @java.lang.Override
    public boolean hasPwdWrongLockCnt() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * uint32 登陆账号锁定密码输入错误次数
     * </pre>
     *
     * <code>optional uint32 PwdWrongLockCnt = 14;</code>
     * @return The pwdWrongLockCnt.
     */
    @java.lang.Override
    public int getPwdWrongLockCnt() {
      return pwdWrongLockCnt_;
    }

    public static final int LOGINLOCKHOURNUM_FIELD_NUMBER = 15;
    private int loginLockHourNum_;
    /**
     * <pre>
     * uint32 登陆账号锁定时长(小时)
     * </pre>
     *
     * <code>optional uint32 LoginLockHourNum = 15;</code>
     * @return Whether the loginLockHourNum field is set.
     */
    @java.lang.Override
    public boolean hasLoginLockHourNum() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * uint32 登陆账号锁定时长(小时)
     * </pre>
     *
     * <code>optional uint32 LoginLockHourNum = 15;</code>
     * @return The loginLockHourNum.
     */
    @java.lang.Override
    public int getLoginLockHourNum() {
      return loginLockHourNum_;
    }

    public static final int LOGINCODE_FIELD_NUMBER = 16;
    private volatile java.lang.Object loginCode_;
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return Whether the loginCode field is set.
     */
    @java.lang.Override
    public boolean hasLoginCode() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return The loginCode.
     */
    @java.lang.Override
    public java.lang.String getLoginCode() {
      java.lang.Object ref = loginCode_;
      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()) {
          loginCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登陆码
     * </pre>
     *
     * <code>optional string LoginCode = 16;</code>
     * @return The bytes for loginCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLoginCodeBytes() {
      java.lang.Object ref = loginCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, loginID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, loginUserType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, accountStatus_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, userID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, memberUserID_);
      }
      for (int i = 0; i < accountIDs_.size(); i++) {
        output.writeUInt64(9, accountIDs_.getLong(i));
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, token_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt64(11, systemTime_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(12, hasUpdatedPwd_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(13, pwdWrongCnt_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt32(14, pwdWrongLockCnt_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeUInt32(15, loginLockHourNum_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, loginCode_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, loginID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, loginUserType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, accountStatus_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, userID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, memberUserID_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < accountIDs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt64SizeNoTag(accountIDs_.getLong(i));
        }
        size += dataSize;
        size += 1 * getAccountIDsList().size();
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, token_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(11, systemTime_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, hasUpdatedPwd_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, pwdWrongCnt_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(14, pwdWrongLockCnt_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(15, loginLockHourNum_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, loginCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasLoginUserType() != other.hasLoginUserType()) return false;
      if (hasLoginUserType()) {
        if (getLoginUserType()
            != other.getLoginUserType()) return false;
      }
      if (hasAccountStatus() != other.hasAccountStatus()) return false;
      if (hasAccountStatus()) {
        if (getAccountStatus()
            != other.getAccountStatus()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasMemberUserID() != other.hasMemberUserID()) return false;
      if (hasMemberUserID()) {
        if (getMemberUserID()
            != other.getMemberUserID()) return false;
      }
      if (!getAccountIDsList()
          .equals(other.getAccountIDsList())) return false;
      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) return false;
      }
      if (hasSystemTime() != other.hasSystemTime()) return false;
      if (hasSystemTime()) {
        if (getSystemTime()
            != other.getSystemTime()) return false;
      }
      if (hasHasUpdatedPwd() != other.hasHasUpdatedPwd()) return false;
      if (hasHasUpdatedPwd()) {
        if (getHasUpdatedPwd()
            != other.getHasUpdatedPwd()) return false;
      }
      if (hasPwdWrongCnt() != other.hasPwdWrongCnt()) return false;
      if (hasPwdWrongCnt()) {
        if (getPwdWrongCnt()
            != other.getPwdWrongCnt()) return false;
      }
      if (hasPwdWrongLockCnt() != other.hasPwdWrongLockCnt()) return false;
      if (hasPwdWrongLockCnt()) {
        if (getPwdWrongLockCnt()
            != other.getPwdWrongLockCnt()) return false;
      }
      if (hasLoginLockHourNum() != other.hasLoginLockHourNum()) return false;
      if (hasLoginLockHourNum()) {
        if (getLoginLockHourNum()
            != other.getLoginLockHourNum()) return false;
      }
      if (hasLoginCode() != other.hasLoginCode()) return false;
      if (hasLoginCode()) {
        if (!getLoginCode()
            .equals(other.getLoginCode())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasLoginUserType()) {
        hash = (37 * hash) + LOGINUSERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getLoginUserType();
      }
      if (hasAccountStatus()) {
        hash = (37 * hash) + ACCOUNTSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getAccountStatus();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasMemberUserID()) {
        hash = (37 * hash) + MEMBERUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getMemberUserID();
      }
      if (getAccountIDsCount() > 0) {
        hash = (37 * hash) + ACCOUNTIDS_FIELD_NUMBER;
        hash = (53 * hash) + getAccountIDsList().hashCode();
      }
      if (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      if (hasSystemTime()) {
        hash = (37 * hash) + SYSTEMTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSystemTime());
      }
      if (hasHasUpdatedPwd()) {
        hash = (37 * hash) + HASUPDATEDPWD_FIELD_NUMBER;
        hash = (53 * hash) + getHasUpdatedPwd();
      }
      if (hasPwdWrongCnt()) {
        hash = (37 * hash) + PWDWRONGCNT_FIELD_NUMBER;
        hash = (53 * hash) + getPwdWrongCnt();
      }
      if (hasPwdWrongLockCnt()) {
        hash = (37 * hash) + PWDWRONGLOCKCNT_FIELD_NUMBER;
        hash = (53 * hash) + getPwdWrongLockCnt();
      }
      if (hasLoginLockHourNum()) {
        hash = (37 * hash) + LOGINLOCKHOURNUM_FIELD_NUMBER;
        hash = (53 * hash) + getLoginLockHourNum();
      }
      if (hasLoginCode()) {
        hash = (37 * hash) + LOGINCODE_FIELD_NUMBER;
        hash = (53 * hash) + getLoginCode().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户登录应答 0 1 2
     * </pre>
     *
     * Protobuf type {@code SystemMI1.LoginRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.LoginRsp)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        loginUserType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        accountStatus_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        memberUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        accountIDs_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000100);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        systemTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000400);
        hasUpdatedPwd_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        pwdWrongCnt_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        pwdWrongLockCnt_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        loginLockHourNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00004000);
        loginCode_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LoginRsp_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginUserType_ = loginUserType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.accountStatus_ = accountStatus_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.memberUserID_ = memberUserID_;
          to_bitField0_ |= 0x00000080;
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          accountIDs_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.accountIDs_ = accountIDs_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.token_ = token_;
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.systemTime_ = systemTime_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.hasUpdatedPwd_ = hasUpdatedPwd_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.pwdWrongCnt_ = pwdWrongCnt_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.pwdWrongLockCnt_ = pwdWrongLockCnt_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.loginLockHourNum_ = loginLockHourNum_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          to_bitField0_ |= 0x00004000;
        }
        result.loginCode_ = loginCode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasLoginUserType()) {
          setLoginUserType(other.getLoginUserType());
        }
        if (other.hasAccountStatus()) {
          setAccountStatus(other.getAccountStatus());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasMemberUserID()) {
          setMemberUserID(other.getMemberUserID());
        }
        if (!other.accountIDs_.isEmpty()) {
          if (accountIDs_.isEmpty()) {
            accountIDs_ = other.accountIDs_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureAccountIDsIsMutable();
            accountIDs_.addAll(other.accountIDs_);
          }
          onChanged();
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000200;
          token_ = other.token_;
          onChanged();
        }
        if (other.hasSystemTime()) {
          setSystemTime(other.getSystemTime());
        }
        if (other.hasHasUpdatedPwd()) {
          setHasUpdatedPwd(other.getHasUpdatedPwd());
        }
        if (other.hasPwdWrongCnt()) {
          setPwdWrongCnt(other.getPwdWrongCnt());
        }
        if (other.hasPwdWrongLockCnt()) {
          setPwdWrongLockCnt(other.getPwdWrongLockCnt());
        }
        if (other.hasLoginLockHourNum()) {
          setLoginLockHourNum(other.getLoginLockHourNum());
        }
        if (other.hasLoginCode()) {
          bitField0_ |= 0x00008000;
          loginCode_ = other.loginCode_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000008;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private int loginUserType_ ;
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 5;</code>
       * @return Whether the loginUserType field is set.
       */
      @java.lang.Override
      public boolean hasLoginUserType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 5;</code>
       * @return The loginUserType.
       */
      @java.lang.Override
      public int getLoginUserType() {
        return loginUserType_;
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 5;</code>
       * @param value The loginUserType to set.
       * @return This builder for chaining.
       */
      public Builder setLoginUserType(int value) {
        bitField0_ |= 0x00000010;
        loginUserType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginUserType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginUserType_ = 0;
        onChanged();
        return this;
      }

      private int accountStatus_ ;
      /**
       * <pre>
       * uint32 用户状态
       * </pre>
       *
       * <code>optional uint32 AccountStatus = 6;</code>
       * @return Whether the accountStatus field is set.
       */
      @java.lang.Override
      public boolean hasAccountStatus() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 用户状态
       * </pre>
       *
       * <code>optional uint32 AccountStatus = 6;</code>
       * @return The accountStatus.
       */
      @java.lang.Override
      public int getAccountStatus() {
        return accountStatus_;
      }
      /**
       * <pre>
       * uint32 用户状态
       * </pre>
       *
       * <code>optional uint32 AccountStatus = 6;</code>
       * @param value The accountStatus to set.
       * @return This builder for chaining.
       */
      public Builder setAccountStatus(int value) {
        bitField0_ |= 0x00000020;
        accountStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 用户状态
       * </pre>
       *
       * <code>optional uint32 AccountStatus = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountStatus() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accountStatus_ = 0;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000040;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        userID_ = 0;
        onChanged();
        return this;
      }

      private int memberUserID_ ;
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return Whether the memberUserID field is set.
       */
      @java.lang.Override
      public boolean hasMemberUserID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return The memberUserID.
       */
      @java.lang.Override
      public int getMemberUserID() {
        return memberUserID_;
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @param value The memberUserID to set.
       * @return This builder for chaining.
       */
      public Builder setMemberUserID(int value) {
        bitField0_ |= 0x00000080;
        memberUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMemberUserID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        memberUserID_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList accountIDs_ = emptyLongList();
      private void ensureAccountIDsIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          accountIDs_ = mutableCopy(accountIDs_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return A list containing the accountIDs.
       */
      public java.util.List<java.lang.Long>
          getAccountIDsList() {
        return ((bitField0_ & 0x00000100) != 0) ?
                 java.util.Collections.unmodifiableList(accountIDs_) : accountIDs_;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return The count of accountIDs.
       */
      public int getAccountIDsCount() {
        return accountIDs_.size();
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param index The index of the element to return.
       * @return The accountIDs at the given index.
       */
      public long getAccountIDs(int index) {
        return accountIDs_.getLong(index);
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param index The index to set the value at.
       * @param value The accountIDs to set.
       * @return This builder for chaining.
       */
      public Builder setAccountIDs(
          int index, long value) {
        ensureAccountIDsIsMutable();
        accountIDs_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param value The accountIDs to add.
       * @return This builder for chaining.
       */
      public Builder addAccountIDs(long value) {
        ensureAccountIDsIsMutable();
        accountIDs_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param values The accountIDs to add.
       * @return This builder for chaining.
       */
      public Builder addAllAccountIDs(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureAccountIDsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, accountIDs_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountIDs() {
        accountIDs_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            token_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000200);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 10;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        token_ = value;
        onChanged();
        return this;
      }

      private long systemTime_ ;
      /**
       * <pre>
       * uint64 系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 11;</code>
       * @return Whether the systemTime field is set.
       */
      @java.lang.Override
      public boolean hasSystemTime() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint64 系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 11;</code>
       * @return The systemTime.
       */
      @java.lang.Override
      public long getSystemTime() {
        return systemTime_;
      }
      /**
       * <pre>
       * uint64 系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 11;</code>
       * @param value The systemTime to set.
       * @return This builder for chaining.
       */
      public Builder setSystemTime(long value) {
        bitField0_ |= 0x00000400;
        systemTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearSystemTime() {
        bitField0_ = (bitField0_ & ~0x00000400);
        systemTime_ = 0L;
        onChanged();
        return this;
      }

      private int hasUpdatedPwd_ ;
      /**
       * <pre>
       * uint32 是否已更改密码
       * </pre>
       *
       * <code>optional uint32 HasUpdatedPwd = 12;</code>
       * @return Whether the hasUpdatedPwd field is set.
       */
      @java.lang.Override
      public boolean hasHasUpdatedPwd() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint32 是否已更改密码
       * </pre>
       *
       * <code>optional uint32 HasUpdatedPwd = 12;</code>
       * @return The hasUpdatedPwd.
       */
      @java.lang.Override
      public int getHasUpdatedPwd() {
        return hasUpdatedPwd_;
      }
      /**
       * <pre>
       * uint32 是否已更改密码
       * </pre>
       *
       * <code>optional uint32 HasUpdatedPwd = 12;</code>
       * @param value The hasUpdatedPwd to set.
       * @return This builder for chaining.
       */
      public Builder setHasUpdatedPwd(int value) {
        bitField0_ |= 0x00000800;
        hasUpdatedPwd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 是否已更改密码
       * </pre>
       *
       * <code>optional uint32 HasUpdatedPwd = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearHasUpdatedPwd() {
        bitField0_ = (bitField0_ & ~0x00000800);
        hasUpdatedPwd_ = 0;
        onChanged();
        return this;
      }

      private int pwdWrongCnt_ ;
      /**
       * <pre>
       * uint32 当前密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongCnt = 13;</code>
       * @return Whether the pwdWrongCnt field is set.
       */
      @java.lang.Override
      public boolean hasPwdWrongCnt() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * uint32 当前密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongCnt = 13;</code>
       * @return The pwdWrongCnt.
       */
      @java.lang.Override
      public int getPwdWrongCnt() {
        return pwdWrongCnt_;
      }
      /**
       * <pre>
       * uint32 当前密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongCnt = 13;</code>
       * @param value The pwdWrongCnt to set.
       * @return This builder for chaining.
       */
      public Builder setPwdWrongCnt(int value) {
        bitField0_ |= 0x00001000;
        pwdWrongCnt_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 当前密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongCnt = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearPwdWrongCnt() {
        bitField0_ = (bitField0_ & ~0x00001000);
        pwdWrongCnt_ = 0;
        onChanged();
        return this;
      }

      private int pwdWrongLockCnt_ ;
      /**
       * <pre>
       * uint32 登陆账号锁定密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongLockCnt = 14;</code>
       * @return Whether the pwdWrongLockCnt field is set.
       */
      @java.lang.Override
      public boolean hasPwdWrongLockCnt() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * uint32 登陆账号锁定密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongLockCnt = 14;</code>
       * @return The pwdWrongLockCnt.
       */
      @java.lang.Override
      public int getPwdWrongLockCnt() {
        return pwdWrongLockCnt_;
      }
      /**
       * <pre>
       * uint32 登陆账号锁定密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongLockCnt = 14;</code>
       * @param value The pwdWrongLockCnt to set.
       * @return This builder for chaining.
       */
      public Builder setPwdWrongLockCnt(int value) {
        bitField0_ |= 0x00002000;
        pwdWrongLockCnt_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆账号锁定密码输入错误次数
       * </pre>
       *
       * <code>optional uint32 PwdWrongLockCnt = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearPwdWrongLockCnt() {
        bitField0_ = (bitField0_ & ~0x00002000);
        pwdWrongLockCnt_ = 0;
        onChanged();
        return this;
      }

      private int loginLockHourNum_ ;
      /**
       * <pre>
       * uint32 登陆账号锁定时长(小时)
       * </pre>
       *
       * <code>optional uint32 LoginLockHourNum = 15;</code>
       * @return Whether the loginLockHourNum field is set.
       */
      @java.lang.Override
      public boolean hasLoginLockHourNum() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * uint32 登陆账号锁定时长(小时)
       * </pre>
       *
       * <code>optional uint32 LoginLockHourNum = 15;</code>
       * @return The loginLockHourNum.
       */
      @java.lang.Override
      public int getLoginLockHourNum() {
        return loginLockHourNum_;
      }
      /**
       * <pre>
       * uint32 登陆账号锁定时长(小时)
       * </pre>
       *
       * <code>optional uint32 LoginLockHourNum = 15;</code>
       * @param value The loginLockHourNum to set.
       * @return This builder for chaining.
       */
      public Builder setLoginLockHourNum(int value) {
        bitField0_ |= 0x00004000;
        loginLockHourNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆账号锁定时长(小时)
       * </pre>
       *
       * <code>optional uint32 LoginLockHourNum = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginLockHourNum() {
        bitField0_ = (bitField0_ & ~0x00004000);
        loginLockHourNum_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object loginCode_ = "";
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @return Whether the loginCode field is set.
       */
      public boolean hasLoginCode() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @return The loginCode.
       */
      public java.lang.String getLoginCode() {
        java.lang.Object ref = loginCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loginCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @return The bytes for loginCode.
       */
      public com.google.protobuf.ByteString
          getLoginCodeBytes() {
        java.lang.Object ref = loginCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @param value The loginCode to set.
       * @return This builder for chaining.
       */
      public Builder setLoginCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        loginCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginCode() {
        bitField0_ = (bitField0_ & ~0x00008000);
        loginCode_ = getDefaultInstance().getLoginCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登陆码
       * </pre>
       *
       * <code>optional string LoginCode = 16;</code>
       * @param value The bytes for loginCode to set.
       * @return This builder for chaining.
       */
      public Builder setLoginCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        loginCode_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.LoginRsp)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.LoginRsp)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LoginRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.LogoutReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return Whether the loginIp field is set.
     */
    boolean hasLoginIp();
    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return The loginIp.
     */
    java.lang.String getLoginIp();
    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return The bytes for loginIp.
     */
    com.google.protobuf.ByteString
        getLoginIpBytes();

    /**
     * <pre>
     * uint32 登出通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 5;</code>
     * @return Whether the loginPort field is set.
     */
    boolean hasLoginPort();
    /**
     * <pre>
     * uint32 登出通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 5;</code>
     * @return The loginPort.
     */
    int getLoginPort();
  }
  /**
   * <pre>
   * 用户登出请求 0 1 3
   * </pre>
   *
   * Protobuf type {@code SystemMI1.LogoutReq}
   */
  public static final class LogoutReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.LogoutReq)
      LogoutReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LogoutReq.newBuilder() to construct.
    private LogoutReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutReq() {
      token_ = "";
      loginIp_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LogoutReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              loginID_ = input.readUInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              token_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              loginIp_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginPort_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int LOGINID_FIELD_NUMBER = 2;
    private long loginID_;
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 登录ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int TOKEN_FIELD_NUMBER = 3;
    private volatile java.lang.Object token_;
    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The token.
     */
    @java.lang.Override
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登录时返回的用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The bytes for token.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINIP_FIELD_NUMBER = 4;
    private volatile java.lang.Object loginIp_;
    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return Whether the loginIp field is set.
     */
    @java.lang.Override
    public boolean hasLoginIp() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return The loginIp.
     */
    @java.lang.Override
    public java.lang.String getLoginIp() {
      java.lang.Object ref = loginIp_;
      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()) {
          loginIp_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 登出IP地址
     * </pre>
     *
     * <code>optional string LoginIp = 4;</code>
     * @return The bytes for loginIp.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLoginIpBytes() {
      java.lang.Object ref = loginIp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginIp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINPORT_FIELD_NUMBER = 5;
    private int loginPort_;
    /**
     * <pre>
     * uint32 登出通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 5;</code>
     * @return Whether the loginPort field is set.
     */
    @java.lang.Override
    public boolean hasLoginPort() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 登出通信端口
     * </pre>
     *
     * <code>optional uint32 LoginPort = 5;</code>
     * @return The loginPort.
     */
    @java.lang.Override
    public int getLoginPort() {
      return loginPort_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, loginIp_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, loginPort_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, loginIp_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, loginPort_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) return false;
      }
      if (hasLoginIp() != other.hasLoginIp()) return false;
      if (hasLoginIp()) {
        if (!getLoginIp()
            .equals(other.getLoginIp())) return false;
      }
      if (hasLoginPort() != other.hasLoginPort()) return false;
      if (hasLoginPort()) {
        if (getLoginPort()
            != other.getLoginPort()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      if (hasLoginIp()) {
        hash = (37 * hash) + LOGINIP_FIELD_NUMBER;
        hash = (53 * hash) + getLoginIp().hashCode();
      }
      if (hasLoginPort()) {
        hash = (37 * hash) + LOGINPORT_FIELD_NUMBER;
        hash = (53 * hash) + getLoginPort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户登出请求 0 1 3
     * </pre>
     *
     * Protobuf type {@code SystemMI1.LogoutReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.LogoutReq)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        loginIp_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        loginPort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutReq_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.token_ = token_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.loginIp_ = loginIp_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginPort_ = loginPort_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000004;
          token_ = other.token_;
          onChanged();
        }
        if (other.hasLoginIp()) {
          bitField0_ |= 0x00000008;
          loginIp_ = other.loginIp_;
          onChanged();
        }
        if (other.hasLoginPort()) {
          setLoginPort(other.getLoginPort());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000002;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登录ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            token_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000004);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登录时返回的用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object loginIp_ = "";
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @return Whether the loginIp field is set.
       */
      public boolean hasLoginIp() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @return The loginIp.
       */
      public java.lang.String getLoginIp() {
        java.lang.Object ref = loginIp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loginIp_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @return The bytes for loginIp.
       */
      public com.google.protobuf.ByteString
          getLoginIpBytes() {
        java.lang.Object ref = loginIp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginIp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @param value The loginIp to set.
       * @return This builder for chaining.
       */
      public Builder setLoginIp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        loginIp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginIp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        loginIp_ = getDefaultInstance().getLoginIp();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 登出IP地址
       * </pre>
       *
       * <code>optional string LoginIp = 4;</code>
       * @param value The bytes for loginIp to set.
       * @return This builder for chaining.
       */
      public Builder setLoginIpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        loginIp_ = value;
        onChanged();
        return this;
      }

      private int loginPort_ ;
      /**
       * <pre>
       * uint32 登出通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 5;</code>
       * @return Whether the loginPort field is set.
       */
      @java.lang.Override
      public boolean hasLoginPort() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 登出通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 5;</code>
       * @return The loginPort.
       */
      @java.lang.Override
      public int getLoginPort() {
        return loginPort_;
      }
      /**
       * <pre>
       * uint32 登出通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 5;</code>
       * @param value The loginPort to set.
       * @return This builder for chaining.
       */
      public Builder setLoginPort(int value) {
        bitField0_ |= 0x00000010;
        loginPort_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登出通信端口
       * </pre>
       *
       * <code>optional uint32 LoginPort = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginPort() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginPort_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.LogoutReq)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.LogoutReq)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.LogoutRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();
  }
  /**
   * <pre>
   * 用户登出应答 0 1 4
   * </pre>
   *
   * Protobuf type {@code SystemMI1.LogoutRsp}
   */
  public static final class LogoutRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.LogoutRsp)
      LogoutRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LogoutRsp.newBuilder() to construct.
    private LogoutRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutRsp() {
      retDesc_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LogoutRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户登出应答 0 1 4
     * </pre>
     *
     * Protobuf type {@code SystemMI1.LogoutRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.LogoutRsp)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_LogoutRsp_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.LogoutRsp)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.LogoutRsp)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.LogoutRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TokenCheckReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.TokenCheckReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <pre>
     * uint64 校验时的系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 4;</code>
     * @return Whether the systemTime field is set.
     */
    boolean hasSystemTime();
    /**
     * <pre>
     * uint64 校验时的系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 4;</code>
     * @return The systemTime.
     */
    long getSystemTime();

    /**
     * <pre>
     * uint32 校验类型
     * </pre>
     *
     * <code>optional uint32 CheckType = 5;</code>
     * @return Whether the checkType field is set.
     */
    boolean hasCheckType();
    /**
     * <pre>
     * uint32 校验类型
     * </pre>
     *
     * <code>optional uint32 CheckType = 5;</code>
     * @return The checkType.
     */
    int getCheckType();
  }
  /**
   * <pre>
   * 用户令牌校验请求 0 1 5
   * </pre>
   *
   * Protobuf type {@code SystemMI1.TokenCheckReq}
   */
  public static final class TokenCheckReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.TokenCheckReq)
      TokenCheckReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TokenCheckReq.newBuilder() to construct.
    private TokenCheckReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TokenCheckReq() {
      token_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TokenCheckReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              loginID_ = input.readUInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              token_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              systemTime_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              checkType_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int LOGINID_FIELD_NUMBER = 2;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 2;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int TOKEN_FIELD_NUMBER = 3;
    private volatile java.lang.Object token_;
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The token.
     */
    @java.lang.Override
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 用户令牌
     * </pre>
     *
     * <code>optional string Token = 3;</code>
     * @return The bytes for token.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYSTEMTIME_FIELD_NUMBER = 4;
    private long systemTime_;
    /**
     * <pre>
     * uint64 校验时的系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 4;</code>
     * @return Whether the systemTime field is set.
     */
    @java.lang.Override
    public boolean hasSystemTime() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 校验时的系统时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 4;</code>
     * @return The systemTime.
     */
    @java.lang.Override
    public long getSystemTime() {
      return systemTime_;
    }

    public static final int CHECKTYPE_FIELD_NUMBER = 5;
    private int checkType_;
    /**
     * <pre>
     * uint32 校验类型
     * </pre>
     *
     * <code>optional uint32 CheckType = 5;</code>
     * @return Whether the checkType field is set.
     */
    @java.lang.Override
    public boolean hasCheckType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 校验类型
     * </pre>
     *
     * <code>optional uint32 CheckType = 5;</code>
     * @return The checkType.
     */
    @java.lang.Override
    public int getCheckType() {
      return checkType_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, systemTime_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, checkType_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, loginID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, systemTime_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, checkType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) return false;
      }
      if (hasSystemTime() != other.hasSystemTime()) return false;
      if (hasSystemTime()) {
        if (getSystemTime()
            != other.getSystemTime()) return false;
      }
      if (hasCheckType() != other.hasCheckType()) return false;
      if (hasCheckType()) {
        if (getCheckType()
            != other.getCheckType()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      if (hasSystemTime()) {
        hash = (37 * hash) + SYSTEMTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSystemTime());
      }
      if (hasCheckType()) {
        hash = (37 * hash) + CHECKTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getCheckType();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户令牌校验请求 0 1 5
     * </pre>
     *
     * Protobuf type {@code SystemMI1.TokenCheckReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.TokenCheckReq)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        systemTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        checkType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckReq_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.token_ = token_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.systemTime_ = systemTime_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.checkType_ = checkType_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000004;
          token_ = other.token_;
          onChanged();
        }
        if (other.hasSystemTime()) {
          setSystemTime(other.getSystemTime());
        }
        if (other.hasCheckType()) {
          setCheckType(other.getCheckType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000002;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            token_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000004);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 用户令牌
       * </pre>
       *
       * <code>optional string Token = 3;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }

      private long systemTime_ ;
      /**
       * <pre>
       * uint64 校验时的系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 4;</code>
       * @return Whether the systemTime field is set.
       */
      @java.lang.Override
      public boolean hasSystemTime() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 校验时的系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 4;</code>
       * @return The systemTime.
       */
      @java.lang.Override
      public long getSystemTime() {
        return systemTime_;
      }
      /**
       * <pre>
       * uint64 校验时的系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 4;</code>
       * @param value The systemTime to set.
       * @return This builder for chaining.
       */
      public Builder setSystemTime(long value) {
        bitField0_ |= 0x00000008;
        systemTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 校验时的系统时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSystemTime() {
        bitField0_ = (bitField0_ & ~0x00000008);
        systemTime_ = 0L;
        onChanged();
        return this;
      }

      private int checkType_ ;
      /**
       * <pre>
       * uint32 校验类型
       * </pre>
       *
       * <code>optional uint32 CheckType = 5;</code>
       * @return Whether the checkType field is set.
       */
      @java.lang.Override
      public boolean hasCheckType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 校验类型
       * </pre>
       *
       * <code>optional uint32 CheckType = 5;</code>
       * @return The checkType.
       */
      @java.lang.Override
      public int getCheckType() {
        return checkType_;
      }
      /**
       * <pre>
       * uint32 校验类型
       * </pre>
       *
       * <code>optional uint32 CheckType = 5;</code>
       * @param value The checkType to set.
       * @return This builder for chaining.
       */
      public Builder setCheckType(int value) {
        bitField0_ |= 0x00000010;
        checkType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 校验类型
       * </pre>
       *
       * <code>optional uint32 CheckType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCheckType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        checkType_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.TokenCheckReq)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.TokenCheckReq)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TokenCheckRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.TokenCheckRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint32 令牌状态
     * </pre>
     *
     * <code>optional uint32 TokenStatus = 5;</code>
     * @return Whether the tokenStatus field is set.
     */
    boolean hasTokenStatus();
    /**
     * <pre>
     * uint32 令牌状态
     * </pre>
     *
     * <code>optional uint32 TokenStatus = 5;</code>
     * @return The tokenStatus.
     */
    int getTokenStatus();

    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 6;</code>
     * @return Whether the loginUserType field is set.
     */
    boolean hasLoginUserType();
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 6;</code>
     * @return The loginUserType.
     */
    int getLoginUserType();

    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return Whether the memberUserID field is set.
     */
    boolean hasMemberUserID();
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return The memberUserID.
     */
    int getMemberUserID();

    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return A list containing the accountIDs.
     */
    java.util.List<java.lang.Long> getAccountIDsList();
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return The count of accountIDs.
     */
    int getAccountIDsCount();
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @param index The index of the element to return.
     * @return The accountIDs at the given index.
     */
    long getAccountIDs(int index);

    /**
     * <pre>
     * uint64 返回服务器最新时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 10;</code>
     * @return Whether the systemTime field is set.
     */
    boolean hasSystemTime();
    /**
     * <pre>
     * uint64 返回服务器最新时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 10;</code>
     * @return The systemTime.
     */
    long getSystemTime();
  }
  /**
   * <pre>
   * 用户令牌校验应答 0 1 6
   * </pre>
   *
   * Protobuf type {@code SystemMI1.TokenCheckRsp}
   */
  public static final class TokenCheckRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.TokenCheckRsp)
      TokenCheckRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TokenCheckRsp.newBuilder() to construct.
    private TokenCheckRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TokenCheckRsp() {
      retDesc_ = "";
      accountIDs_ = emptyLongList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TokenCheckRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              loginID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              tokenStatus_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              loginUserType_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              userID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              memberUserID_ = input.readUInt32();
              break;
            }
            case 72: {
              if (!((mutable_bitField0_ & 0x00000100) != 0)) {
                accountIDs_ = newLongList();
                mutable_bitField0_ |= 0x00000100;
              }
              accountIDs_.addLong(input.readUInt64());
              break;
            }
            case 74: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000100) != 0) && input.getBytesUntilLimit() > 0) {
                accountIDs_ = newLongList();
                mutable_bitField0_ |= 0x00000100;
              }
              while (input.getBytesUntilLimit() > 0) {
                accountIDs_.addLong(input.readUInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 80: {
              bitField0_ |= 0x00000100;
              systemTime_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000100) != 0)) {
          accountIDs_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGINID_FIELD_NUMBER = 4;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账户ID
     * </pre>
     *
     * <code>optional uint64 LoginID = 4;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int TOKENSTATUS_FIELD_NUMBER = 5;
    private int tokenStatus_;
    /**
     * <pre>
     * uint32 令牌状态
     * </pre>
     *
     * <code>optional uint32 TokenStatus = 5;</code>
     * @return Whether the tokenStatus field is set.
     */
    @java.lang.Override
    public boolean hasTokenStatus() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 令牌状态
     * </pre>
     *
     * <code>optional uint32 TokenStatus = 5;</code>
     * @return The tokenStatus.
     */
    @java.lang.Override
    public int getTokenStatus() {
      return tokenStatus_;
    }

    public static final int LOGINUSERTYPE_FIELD_NUMBER = 6;
    private int loginUserType_;
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 6;</code>
     * @return Whether the loginUserType field is set.
     */
    @java.lang.Override
    public boolean hasLoginUserType() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 登陆用户类型
     * </pre>
     *
     * <code>optional uint32 LoginUserType = 6;</code>
     * @return The loginUserType.
     */
    @java.lang.Override
    public int getLoginUserType() {
      return loginUserType_;
    }

    public static final int USERID_FIELD_NUMBER = 7;
    private int userID_;
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint32 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 7;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int MEMBERUSERID_FIELD_NUMBER = 8;
    private int memberUserID_;
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return Whether the memberUserID field is set.
     */
    @java.lang.Override
    public boolean hasMemberUserID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 用户所属会员用户ID
     * </pre>
     *
     * <code>optional uint32 MemberUserID = 8;</code>
     * @return The memberUserID.
     */
    @java.lang.Override
    public int getMemberUserID() {
      return memberUserID_;
    }

    public static final int ACCOUNTIDS_FIELD_NUMBER = 9;
    private com.google.protobuf.Internal.LongList accountIDs_;
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return A list containing the accountIDs.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getAccountIDsList() {
      return accountIDs_;
    }
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @return The count of accountIDs.
     */
    public int getAccountIDsCount() {
      return accountIDs_.size();
    }
    /**
     * <pre>
     * uint64 账户ID列表(有权限的)
     * </pre>
     *
     * <code>repeated uint64 AccountIDs = 9;</code>
     * @param index The index of the element to return.
     * @return The accountIDs at the given index.
     */
    public long getAccountIDs(int index) {
      return accountIDs_.getLong(index);
    }

    public static final int SYSTEMTIME_FIELD_NUMBER = 10;
    private long systemTime_;
    /**
     * <pre>
     * uint64 返回服务器最新时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 10;</code>
     * @return Whether the systemTime field is set.
     */
    @java.lang.Override
    public boolean hasSystemTime() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * uint64 返回服务器最新时间
     * </pre>
     *
     * <code>optional uint64 SystemTime = 10;</code>
     * @return The systemTime.
     */
    @java.lang.Override
    public long getSystemTime() {
      return systemTime_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, loginID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, tokenStatus_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, loginUserType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, userID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, memberUserID_);
      }
      for (int i = 0; i < accountIDs_.size(); i++) {
        output.writeUInt64(9, accountIDs_.getLong(i));
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt64(10, systemTime_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, loginID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, tokenStatus_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, loginUserType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, userID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, memberUserID_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < accountIDs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt64SizeNoTag(accountIDs_.getLong(i));
        }
        size += dataSize;
        size += 1 * getAccountIDsList().size();
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, systemTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasTokenStatus() != other.hasTokenStatus()) return false;
      if (hasTokenStatus()) {
        if (getTokenStatus()
            != other.getTokenStatus()) return false;
      }
      if (hasLoginUserType() != other.hasLoginUserType()) return false;
      if (hasLoginUserType()) {
        if (getLoginUserType()
            != other.getLoginUserType()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasMemberUserID() != other.hasMemberUserID()) return false;
      if (hasMemberUserID()) {
        if (getMemberUserID()
            != other.getMemberUserID()) return false;
      }
      if (!getAccountIDsList()
          .equals(other.getAccountIDsList())) return false;
      if (hasSystemTime() != other.hasSystemTime()) return false;
      if (hasSystemTime()) {
        if (getSystemTime()
            != other.getSystemTime()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasTokenStatus()) {
        hash = (37 * hash) + TOKENSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getTokenStatus();
      }
      if (hasLoginUserType()) {
        hash = (37 * hash) + LOGINUSERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getLoginUserType();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasMemberUserID()) {
        hash = (37 * hash) + MEMBERUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getMemberUserID();
      }
      if (getAccountIDsCount() > 0) {
        hash = (37 * hash) + ACCOUNTIDS_FIELD_NUMBER;
        hash = (53 * hash) + getAccountIDsList().hashCode();
      }
      if (hasSystemTime()) {
        hash = (37 * hash) + SYSTEMTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSystemTime());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 用户令牌校验应答 0 1 6
     * </pre>
     *
     * Protobuf type {@code SystemMI1.TokenCheckRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.TokenCheckRsp)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        tokenStatus_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        loginUserType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        memberUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        accountIDs_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000100);
        systemTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_TokenCheckRsp_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.tokenStatus_ = tokenStatus_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.loginUserType_ = loginUserType_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.memberUserID_ = memberUserID_;
          to_bitField0_ |= 0x00000080;
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          accountIDs_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.accountIDs_ = accountIDs_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.systemTime_ = systemTime_;
          to_bitField0_ |= 0x00000100;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasTokenStatus()) {
          setTokenStatus(other.getTokenStatus());
        }
        if (other.hasLoginUserType()) {
          setLoginUserType(other.getLoginUserType());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasMemberUserID()) {
          setMemberUserID(other.getMemberUserID());
        }
        if (!other.accountIDs_.isEmpty()) {
          if (accountIDs_.isEmpty()) {
            accountIDs_ = other.accountIDs_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureAccountIDsIsMutable();
            accountIDs_.addAll(other.accountIDs_);
          }
          onChanged();
        }
        if (other.hasSystemTime()) {
          setSystemTime(other.getSystemTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000008;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账户ID
       * </pre>
       *
       * <code>optional uint64 LoginID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private int tokenStatus_ ;
      /**
       * <pre>
       * uint32 令牌状态
       * </pre>
       *
       * <code>optional uint32 TokenStatus = 5;</code>
       * @return Whether the tokenStatus field is set.
       */
      @java.lang.Override
      public boolean hasTokenStatus() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 令牌状态
       * </pre>
       *
       * <code>optional uint32 TokenStatus = 5;</code>
       * @return The tokenStatus.
       */
      @java.lang.Override
      public int getTokenStatus() {
        return tokenStatus_;
      }
      /**
       * <pre>
       * uint32 令牌状态
       * </pre>
       *
       * <code>optional uint32 TokenStatus = 5;</code>
       * @param value The tokenStatus to set.
       * @return This builder for chaining.
       */
      public Builder setTokenStatus(int value) {
        bitField0_ |= 0x00000010;
        tokenStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 令牌状态
       * </pre>
       *
       * <code>optional uint32 TokenStatus = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenStatus() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tokenStatus_ = 0;
        onChanged();
        return this;
      }

      private int loginUserType_ ;
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 6;</code>
       * @return Whether the loginUserType field is set.
       */
      @java.lang.Override
      public boolean hasLoginUserType() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 6;</code>
       * @return The loginUserType.
       */
      @java.lang.Override
      public int getLoginUserType() {
        return loginUserType_;
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 6;</code>
       * @param value The loginUserType to set.
       * @return This builder for chaining.
       */
      public Builder setLoginUserType(int value) {
        bitField0_ |= 0x00000020;
        loginUserType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 登陆用户类型
       * </pre>
       *
       * <code>optional uint32 LoginUserType = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginUserType() {
        bitField0_ = (bitField0_ & ~0x00000020);
        loginUserType_ = 0;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000040;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        userID_ = 0;
        onChanged();
        return this;
      }

      private int memberUserID_ ;
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return Whether the memberUserID field is set.
       */
      @java.lang.Override
      public boolean hasMemberUserID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return The memberUserID.
       */
      @java.lang.Override
      public int getMemberUserID() {
        return memberUserID_;
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @param value The memberUserID to set.
       * @return This builder for chaining.
       */
      public Builder setMemberUserID(int value) {
        bitField0_ |= 0x00000080;
        memberUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 用户所属会员用户ID
       * </pre>
       *
       * <code>optional uint32 MemberUserID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMemberUserID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        memberUserID_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList accountIDs_ = emptyLongList();
      private void ensureAccountIDsIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          accountIDs_ = mutableCopy(accountIDs_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return A list containing the accountIDs.
       */
      public java.util.List<java.lang.Long>
          getAccountIDsList() {
        return ((bitField0_ & 0x00000100) != 0) ?
                 java.util.Collections.unmodifiableList(accountIDs_) : accountIDs_;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return The count of accountIDs.
       */
      public int getAccountIDsCount() {
        return accountIDs_.size();
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param index The index of the element to return.
       * @return The accountIDs at the given index.
       */
      public long getAccountIDs(int index) {
        return accountIDs_.getLong(index);
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param index The index to set the value at.
       * @param value The accountIDs to set.
       * @return This builder for chaining.
       */
      public Builder setAccountIDs(
          int index, long value) {
        ensureAccountIDsIsMutable();
        accountIDs_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param value The accountIDs to add.
       * @return This builder for chaining.
       */
      public Builder addAccountIDs(long value) {
        ensureAccountIDsIsMutable();
        accountIDs_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @param values The accountIDs to add.
       * @return This builder for chaining.
       */
      public Builder addAllAccountIDs(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureAccountIDsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, accountIDs_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 账户ID列表(有权限的)
       * </pre>
       *
       * <code>repeated uint64 AccountIDs = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountIDs() {
        accountIDs_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }

      private long systemTime_ ;
      /**
       * <pre>
       * uint64 返回服务器最新时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 10;</code>
       * @return Whether the systemTime field is set.
       */
      @java.lang.Override
      public boolean hasSystemTime() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint64 返回服务器最新时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 10;</code>
       * @return The systemTime.
       */
      @java.lang.Override
      public long getSystemTime() {
        return systemTime_;
      }
      /**
       * <pre>
       * uint64 返回服务器最新时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 10;</code>
       * @param value The systemTime to set.
       * @return This builder for chaining.
       */
      public Builder setSystemTime(long value) {
        bitField0_ |= 0x00000200;
        systemTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 返回服务器最新时间
       * </pre>
       *
       * <code>optional uint64 SystemTime = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearSystemTime() {
        bitField0_ = (bitField0_ & ~0x00000200);
        systemTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.TokenCheckRsp)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.TokenCheckRsp)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.TokenCheckRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ModifyPwdReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.ModifyPwdReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint32 修改密码类型 1：登陆密码 2：资金账户密码
     * </pre>
     *
     * <code>optional uint32 ModifyPwdType = 2;</code>
     * @return Whether the modifyPwdType field is set.
     */
    boolean hasModifyPwdType();
    /**
     * <pre>
     * uint32 修改密码类型 1：登陆密码 2：资金账户密码
     * </pre>
     *
     * <code>optional uint32 ModifyPwdType = 2;</code>
     * @return The modifyPwdType.
     */
    int getModifyPwdType();

    /**
     * <pre>
     * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
     * </pre>
     *
     * <code>optional uint64 ModifyPwdID = 3;</code>
     * @return Whether the modifyPwdID field is set.
     */
    boolean hasModifyPwdID();
    /**
     * <pre>
     * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
     * </pre>
     *
     * <code>optional uint64 ModifyPwdID = 3;</code>
     * @return The modifyPwdID.
     */
    long getModifyPwdID();

    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return Whether the oldPwd field is set.
     */
    boolean hasOldPwd();
    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return The oldPwd.
     */
    java.lang.String getOldPwd();
    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return The bytes for oldPwd.
     */
    com.google.protobuf.ByteString
        getOldPwdBytes();

    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return Whether the newPwd field is set.
     */
    boolean hasNewPwd();
    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return The newPwd.
     */
    java.lang.String getNewPwd();
    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return The bytes for newPwd.
     */
    com.google.protobuf.ByteString
        getNewPwdBytes();
  }
  /**
   * <pre>
   * 修改账户密码请求 0 1 7
   * </pre>
   *
   * Protobuf type {@code SystemMI1.ModifyPwdReq}
   */
  public static final class ModifyPwdReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.ModifyPwdReq)
      ModifyPwdReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ModifyPwdReq.newBuilder() to construct.
    private ModifyPwdReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ModifyPwdReq() {
      oldPwd_ = "";
      newPwd_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ModifyPwdReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              modifyPwdType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              modifyPwdID_ = input.readUInt64();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              oldPwd_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              newPwd_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int MODIFYPWDTYPE_FIELD_NUMBER = 2;
    private int modifyPwdType_;
    /**
     * <pre>
     * uint32 修改密码类型 1：登陆密码 2：资金账户密码
     * </pre>
     *
     * <code>optional uint32 ModifyPwdType = 2;</code>
     * @return Whether the modifyPwdType field is set.
     */
    @java.lang.Override
    public boolean hasModifyPwdType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint32 修改密码类型 1：登陆密码 2：资金账户密码
     * </pre>
     *
     * <code>optional uint32 ModifyPwdType = 2;</code>
     * @return The modifyPwdType.
     */
    @java.lang.Override
    public int getModifyPwdType() {
      return modifyPwdType_;
    }

    public static final int MODIFYPWDID_FIELD_NUMBER = 3;
    private long modifyPwdID_;
    /**
     * <pre>
     * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
     * </pre>
     *
     * <code>optional uint64 ModifyPwdID = 3;</code>
     * @return Whether the modifyPwdID field is set.
     */
    @java.lang.Override
    public boolean hasModifyPwdID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
     * </pre>
     *
     * <code>optional uint64 ModifyPwdID = 3;</code>
     * @return The modifyPwdID.
     */
    @java.lang.Override
    public long getModifyPwdID() {
      return modifyPwdID_;
    }

    public static final int OLDPWD_FIELD_NUMBER = 4;
    private volatile java.lang.Object oldPwd_;
    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return Whether the oldPwd field is set.
     */
    @java.lang.Override
    public boolean hasOldPwd() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return The oldPwd.
     */
    @java.lang.Override
    public java.lang.String getOldPwd() {
      java.lang.Object ref = oldPwd_;
      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()) {
          oldPwd_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 旧资金密码
     * </pre>
     *
     * <code>optional string OldPwd = 4;</code>
     * @return The bytes for oldPwd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOldPwdBytes() {
      java.lang.Object ref = oldPwd_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        oldPwd_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NEWPWD_FIELD_NUMBER = 5;
    private volatile java.lang.Object newPwd_;
    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return Whether the newPwd field is set.
     */
    @java.lang.Override
    public boolean hasNewPwd() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return The newPwd.
     */
    @java.lang.Override
    public java.lang.String getNewPwd() {
      java.lang.Object ref = newPwd_;
      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()) {
          newPwd_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 新资金密码
     * </pre>
     *
     * <code>optional string NewPwd = 5;</code>
     * @return The bytes for newPwd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNewPwdBytes() {
      java.lang.Object ref = newPwd_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        newPwd_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, modifyPwdType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, modifyPwdID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, oldPwd_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, newPwd_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, modifyPwdType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, modifyPwdID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, oldPwd_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, newPwd_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasModifyPwdType() != other.hasModifyPwdType()) return false;
      if (hasModifyPwdType()) {
        if (getModifyPwdType()
            != other.getModifyPwdType()) return false;
      }
      if (hasModifyPwdID() != other.hasModifyPwdID()) return false;
      if (hasModifyPwdID()) {
        if (getModifyPwdID()
            != other.getModifyPwdID()) return false;
      }
      if (hasOldPwd() != other.hasOldPwd()) return false;
      if (hasOldPwd()) {
        if (!getOldPwd()
            .equals(other.getOldPwd())) return false;
      }
      if (hasNewPwd() != other.hasNewPwd()) return false;
      if (hasNewPwd()) {
        if (!getNewPwd()
            .equals(other.getNewPwd())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasModifyPwdType()) {
        hash = (37 * hash) + MODIFYPWDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getModifyPwdType();
      }
      if (hasModifyPwdID()) {
        hash = (37 * hash) + MODIFYPWDID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getModifyPwdID());
      }
      if (hasOldPwd()) {
        hash = (37 * hash) + OLDPWD_FIELD_NUMBER;
        hash = (53 * hash) + getOldPwd().hashCode();
      }
      if (hasNewPwd()) {
        hash = (37 * hash) + NEWPWD_FIELD_NUMBER;
        hash = (53 * hash) + getNewPwd().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 修改账户密码请求 0 1 7
     * </pre>
     *
     * Protobuf type {@code SystemMI1.ModifyPwdReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.ModifyPwdReq)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        modifyPwdType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        modifyPwdID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        oldPwd_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        newPwd_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdReq_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.modifyPwdType_ = modifyPwdType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.modifyPwdID_ = modifyPwdID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.oldPwd_ = oldPwd_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.newPwd_ = newPwd_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasModifyPwdType()) {
          setModifyPwdType(other.getModifyPwdType());
        }
        if (other.hasModifyPwdID()) {
          setModifyPwdID(other.getModifyPwdID());
        }
        if (other.hasOldPwd()) {
          bitField0_ |= 0x00000008;
          oldPwd_ = other.oldPwd_;
          onChanged();
        }
        if (other.hasNewPwd()) {
          bitField0_ |= 0x00000010;
          newPwd_ = other.newPwd_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int modifyPwdType_ ;
      /**
       * <pre>
       * uint32 修改密码类型 1：登陆密码 2：资金账户密码
       * </pre>
       *
       * <code>optional uint32 ModifyPwdType = 2;</code>
       * @return Whether the modifyPwdType field is set.
       */
      @java.lang.Override
      public boolean hasModifyPwdType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint32 修改密码类型 1：登陆密码 2：资金账户密码
       * </pre>
       *
       * <code>optional uint32 ModifyPwdType = 2;</code>
       * @return The modifyPwdType.
       */
      @java.lang.Override
      public int getModifyPwdType() {
        return modifyPwdType_;
      }
      /**
       * <pre>
       * uint32 修改密码类型 1：登陆密码 2：资金账户密码
       * </pre>
       *
       * <code>optional uint32 ModifyPwdType = 2;</code>
       * @param value The modifyPwdType to set.
       * @return This builder for chaining.
       */
      public Builder setModifyPwdType(int value) {
        bitField0_ |= 0x00000002;
        modifyPwdType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 修改密码类型 1：登陆密码 2：资金账户密码
       * </pre>
       *
       * <code>optional uint32 ModifyPwdType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearModifyPwdType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        modifyPwdType_ = 0;
        onChanged();
        return this;
      }

      private long modifyPwdID_ ;
      /**
       * <pre>
       * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
       * </pre>
       *
       * <code>optional uint64 ModifyPwdID = 3;</code>
       * @return Whether the modifyPwdID field is set.
       */
      @java.lang.Override
      public boolean hasModifyPwdID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
       * </pre>
       *
       * <code>optional uint64 ModifyPwdID = 3;</code>
       * @return The modifyPwdID.
       */
      @java.lang.Override
      public long getModifyPwdID() {
        return modifyPwdID_;
      }
      /**
       * <pre>
       * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
       * </pre>
       *
       * <code>optional uint64 ModifyPwdID = 3;</code>
       * @param value The modifyPwdID to set.
       * @return This builder for chaining.
       */
      public Builder setModifyPwdID(long value) {
        bitField0_ |= 0x00000004;
        modifyPwdID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 被修改的ID(ModifyType=1:LoginID ModifyType=2:AccountID)
       * </pre>
       *
       * <code>optional uint64 ModifyPwdID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearModifyPwdID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        modifyPwdID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object oldPwd_ = "";
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @return Whether the oldPwd field is set.
       */
      public boolean hasOldPwd() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @return The oldPwd.
       */
      public java.lang.String getOldPwd() {
        java.lang.Object ref = oldPwd_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            oldPwd_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @return The bytes for oldPwd.
       */
      public com.google.protobuf.ByteString
          getOldPwdBytes() {
        java.lang.Object ref = oldPwd_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          oldPwd_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @param value The oldPwd to set.
       * @return This builder for chaining.
       */
      public Builder setOldPwd(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        oldPwd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOldPwd() {
        bitField0_ = (bitField0_ & ~0x00000008);
        oldPwd_ = getDefaultInstance().getOldPwd();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 旧资金密码
       * </pre>
       *
       * <code>optional string OldPwd = 4;</code>
       * @param value The bytes for oldPwd to set.
       * @return This builder for chaining.
       */
      public Builder setOldPwdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        oldPwd_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object newPwd_ = "";
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @return Whether the newPwd field is set.
       */
      public boolean hasNewPwd() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @return The newPwd.
       */
      public java.lang.String getNewPwd() {
        java.lang.Object ref = newPwd_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            newPwd_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @return The bytes for newPwd.
       */
      public com.google.protobuf.ByteString
          getNewPwdBytes() {
        java.lang.Object ref = newPwd_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          newPwd_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @param value The newPwd to set.
       * @return This builder for chaining.
       */
      public Builder setNewPwd(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        newPwd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewPwd() {
        bitField0_ = (bitField0_ & ~0x00000010);
        newPwd_ = getDefaultInstance().getNewPwd();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 新资金密码
       * </pre>
       *
       * <code>optional string NewPwd = 5;</code>
       * @param value The bytes for newPwd to set.
       * @return This builder for chaining.
       */
      public Builder setNewPwdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        newPwd_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.ModifyPwdReq)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.ModifyPwdReq)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ModifyPwdRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SystemMI1.ModifyPwdRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();
  }
  /**
   * <pre>
   * 修改账户密码应答 0 1 8
   * </pre>
   *
   * Protobuf type {@code SystemMI1.ModifyPwdRsp}
   */
  public static final class ModifyPwdRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SystemMI1.ModifyPwdRsp)
      ModifyPwdRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ModifyPwdRsp.newBuilder() to construct.
    private ModifyPwdRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ModifyPwdRsp() {
      retDesc_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ModifyPwdRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp)) {
        return super.equals(obj);
      }
      cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp other = (cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 修改账户密码应答 0 1 8
     * </pre>
     *
     * Protobuf type {@code SystemMI1.ModifyPwdRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SystemMI1.ModifyPwdRsp)
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.class, cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.Builder.class);
      }

      // Construct using cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.internal_static_SystemMI1_ModifyPwdRsp_descriptor;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp getDefaultInstanceForType() {
        return cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.getDefaultInstance();
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp build() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp buildPartial() {
        cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp result = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp) {
          return mergeFrom((cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp other) {
        if (other == cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:SystemMI1.ModifyPwdRsp)
    }

    // @@protoc_insertion_point(class_scope:SystemMI1.ModifyPwdRsp)
    private static final cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp();
    }

    public static cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.SystemMI1.ModifyPwdRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_LoginReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_LoginReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_LoginRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_LoginRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_LogoutReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_LogoutReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_LogoutRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_LogoutRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_TokenCheckReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_TokenCheckReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_TokenCheckRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_TokenCheckRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_ModifyPwdReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_ModifyPwdReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SystemMI1_ModifyPwdRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SystemMI1_ModifyPwdRsp_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\017SystemMI1.proto\022\tSystemMI1\032\014Common.pro" +
      "to\032\017PublicMI1.proto\"\210\002\n\010LoginReq\022\034\n\006Head" +
      "er\030\001 \001(\0132\014.MessageHead\022\017\n\007LoginID\030\002 \001(\004\022" +
      "\020\n\010LoginPWD\030\003 \001(\t\022\021\n\tLoginType\030\004 \001(\r\022\022\n\n" +
      "ClientType\030\005 \001(\r\022\017\n\007Version\030\006 \001(\t\022\023\n\013Mob" +
      "ilePhone\030\007 \001(\t\022\014\n\004GUID\030\010 \001(\t\022\017\n\007LoginIp\030" +
      "\t \001(\t\022\021\n\tLoginPort\030\n \001(\r\022\020\n\010DeviceID\030\013 \001" +
      "(\t\022\027\n\017EnvironmentInfo\030\014 \001(\t\022\021\n\tLoginCode" +
      "\030\r \001(\t\"\330\002\n\010LoginRsp\022\034\n\006Header\030\001 \001(\0132\014.Me" +
      "ssageHead\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 " +
      "\001(\t\022\017\n\007LoginID\030\004 \001(\004\022\025\n\rLoginUserType\030\005 " +
      "\001(\r\022\025\n\rAccountStatus\030\006 \001(\r\022\016\n\006UserID\030\007 \001" +
      "(\r\022\024\n\014MemberUserID\030\010 \001(\r\022\022\n\nAccountIDs\030\t" +
      " \003(\004\022\r\n\005Token\030\n \001(\t\022\022\n\nSystemTime\030\013 \001(\004\022" +
      "\025\n\rHasUpdatedPwd\030\014 \001(\r\022\023\n\013PwdWrongCnt\030\r " +
      "\001(\r\022\027\n\017PwdWrongLockCnt\030\016 \001(\r\022\030\n\020LoginLoc" +
      "kHourNum\030\017 \001(\r\022\021\n\tLoginCode\030\020 \001(\t\"m\n\tLog" +
      "outReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007" +
      "LoginID\030\002 \001(\004\022\r\n\005Token\030\003 \001(\t\022\017\n\007LoginIp\030" +
      "\004 \001(\t\022\021\n\tLoginPort\030\005 \001(\r\"K\n\tLogoutRsp\022\034\n" +
      "\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002" +
      " \001(\005\022\017\n\007RetDesc\030\003 \001(\t\"t\n\rTokenCheckReq\022\034" +
      "\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007LoginID\030" +
      "\002 \001(\004\022\r\n\005Token\030\003 \001(\t\022\022\n\nSystemTime\030\004 \001(\004" +
      "\022\021\n\tCheckType\030\005 \001(\r\"\332\001\n\rTokenCheckRsp\022\034\n" +
      "\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002" +
      " \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\017\n\007LoginID\030\004 \001(\004\022\023" +
      "\n\013TokenStatus\030\005 \001(\r\022\025\n\rLoginUserType\030\006 \001" +
      "(\r\022\016\n\006UserID\030\007 \001(\r\022\024\n\014MemberUserID\030\010 \001(\r" +
      "\022\022\n\nAccountIDs\030\t \003(\004\022\022\n\nSystemTime\030\n \001(\004" +
      "\"x\n\014ModifyPwdReq\022\034\n\006Header\030\001 \001(\0132\014.Messa" +
      "geHead\022\025\n\rModifyPwdType\030\002 \001(\r\022\023\n\013ModifyP" +
      "wdID\030\003 \001(\004\022\016\n\006OldPwd\030\004 \001(\t\022\016\n\006NewPwd\030\005 \001" +
      "(\t\"N\n\014ModifyPwdRsp\022\034\n\006Header\030\001 \001(\0132\014.Mes" +
      "sageHead\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001" +
      "(\tB?\n%cn.muchinfo.rma.protobuf.protoclas" +
      "sesZ\026com.muchinfo.mtp.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor(),
          cn.muchinfo.rma.protobuf.protoclasses.PublicMI1.getDescriptor(),
        });
    internal_static_SystemMI1_LoginReq_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_SystemMI1_LoginReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_LoginReq_descriptor,
        new java.lang.String[] { "Header", "LoginID", "LoginPWD", "LoginType", "ClientType", "Version", "MobilePhone", "GUID", "LoginIp", "LoginPort", "DeviceID", "EnvironmentInfo", "LoginCode", });
    internal_static_SystemMI1_LoginRsp_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_SystemMI1_LoginRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_LoginRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "LoginID", "LoginUserType", "AccountStatus", "UserID", "MemberUserID", "AccountIDs", "Token", "SystemTime", "HasUpdatedPwd", "PwdWrongCnt", "PwdWrongLockCnt", "LoginLockHourNum", "LoginCode", });
    internal_static_SystemMI1_LogoutReq_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_SystemMI1_LogoutReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_LogoutReq_descriptor,
        new java.lang.String[] { "Header", "LoginID", "Token", "LoginIp", "LoginPort", });
    internal_static_SystemMI1_LogoutRsp_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_SystemMI1_LogoutRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_LogoutRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", });
    internal_static_SystemMI1_TokenCheckReq_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_SystemMI1_TokenCheckReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_TokenCheckReq_descriptor,
        new java.lang.String[] { "Header", "LoginID", "Token", "SystemTime", "CheckType", });
    internal_static_SystemMI1_TokenCheckRsp_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_SystemMI1_TokenCheckRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_TokenCheckRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "LoginID", "TokenStatus", "LoginUserType", "UserID", "MemberUserID", "AccountIDs", "SystemTime", });
    internal_static_SystemMI1_ModifyPwdReq_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_SystemMI1_ModifyPwdReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_ModifyPwdReq_descriptor,
        new java.lang.String[] { "Header", "ModifyPwdType", "ModifyPwdID", "OldPwd", "NewPwd", });
    internal_static_SystemMI1_ModifyPwdRsp_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_SystemMI1_ModifyPwdRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SystemMI1_ModifyPwdRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", });
    cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor();
    cn.muchinfo.rma.protobuf.protoclasses.PublicMI1.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
