PadPlusServerOuterClass.java

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

package wechaty.padplus.grpc;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code PadPlusServer.ApiType}
   */
  public enum ApiType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>GET_QRCODE = 0;</code>
     */
    GET_QRCODE(0),
    /**
     * <code>RECONNECT = 1;</code>
     */
    RECONNECT(1),
    /**
     * <code>LOGOUT = 2;</code>
     */
    LOGOUT(2),
    /**
     * <code>INIT = 3;</code>
     */
    INIT(3),
    /**
     * <code>STOP = 4;</code>
     */
    STOP(4),
    /**
     * <code>CLOSE = 5;</code>
     */
    CLOSE(5),
    /**
     * <code>HEARTBEAT = 6;</code>
     */
    HEARTBEAT(6),
    /**
     * <code>LOGIN_DEVICE = 7;</code>
     */
    LOGIN_DEVICE(7),
    /**
     * <code>GET_CONTACT = 10;</code>
     */
    GET_CONTACT(10),
    /**
     * <code>SEARCH_CONTACT = 11;</code>
     */
    SEARCH_CONTACT(11),
    /**
     * <code>ADD_CONTACT = 12;</code>
     */
    ADD_CONTACT(12),
    /**
     * <code>ACCEPT_CONTACT = 13;</code>
     */
    ACCEPT_CONTACT(13),
    /**
     * <code>SYNC_CONTACT = 14;</code>
     */
    SYNC_CONTACT(14),
    /**
     * <code>CONTACT_ALIAS = 15;</code>
     */
    CONTACT_ALIAS(15),
    /**
     * <code>ADD_CHATROOM_CONTACT = 16;</code>
     */
    ADD_CHATROOM_CONTACT(16),
    /**
     * <code>GET_CONTACT_SELF_INFO = 17;</code>
     */
    GET_CONTACT_SELF_INFO(17),
    /**
     * <code>SET_CONTACT_SELF_INFO = 18;</code>
     */
    SET_CONTACT_SELF_INFO(18),
    /**
     * <code>GET_CONTACT_SELF_QRCODE = 19;</code>
     */
    GET_CONTACT_SELF_QRCODE(19),
    /**
     * <code>GET_ROOM_MEMBER = 30;</code>
     */
    GET_ROOM_MEMBER(30),
    /**
     * <code>ROOM_OPERATION = 31;</code>
     */
    ROOM_OPERATION(31),
    /**
     * <code>CREATE_ROOM = 32;</code>
     */
    CREATE_ROOM(32),
    /**
     * <code>SET_ROOM_ANNOUNCEMENT = 33;</code>
     */
    SET_ROOM_ANNOUNCEMENT(33),
    /**
     * <code>GET_ROOM_ANNOUNCEMENT = 34;</code>
     */
    GET_ROOM_ANNOUNCEMENT(34),
    /**
     * <code>GET_ROOM_QRCODE = 35;</code>
     */
    GET_ROOM_QRCODE(35),
    /**
     * <code>ACCEPT_ROOM_INVITATION = 36;</code>
     */
    ACCEPT_ROOM_INVITATION(36),
    /**
     * <code>SEND_MESSAGE = 50;</code>
     */
    SEND_MESSAGE(50),
    /**
     * <code>SEND_FILE = 51;</code>
     */
    SEND_FILE(51),
    /**
     * <code>REVOKE_MESSAGE = 52;</code>
     */
    REVOKE_MESSAGE(52),
    /**
     * <code>GET_MESSAGE_MEDIA = 53;</code>
     */
    GET_MESSAGE_MEDIA(53),
    /**
     * <code>GET_ALL_TAG = 70;</code>
     */
    GET_ALL_TAG(70),
    /**
     * <code>CREATE_TAG = 71;</code>
     */
    CREATE_TAG(71),
    /**
     * <code>ADD_TAG = 72;</code>
     */
    ADD_TAG(72),
    /**
     * <code>MODIFY_TAG = 73;</code>
     */
    MODIFY_TAG(73),
    /**
     * <code>DELETE_TAG = 74;</code>
     */
    DELETE_TAG(74),
    ;

    /**
     * <code>GET_QRCODE = 0;</code>
     */
    public static final int GET_QRCODE_VALUE = 0;
    /**
     * <code>RECONNECT = 1;</code>
     */
    public static final int RECONNECT_VALUE = 1;
    /**
     * <code>LOGOUT = 2;</code>
     */
    public static final int LOGOUT_VALUE = 2;
    /**
     * <code>INIT = 3;</code>
     */
    public static final int INIT_VALUE = 3;
    /**
     * <code>STOP = 4;</code>
     */
    public static final int STOP_VALUE = 4;
    /**
     * <code>CLOSE = 5;</code>
     */
    public static final int CLOSE_VALUE = 5;
    /**
     * <code>HEARTBEAT = 6;</code>
     */
    public static final int HEARTBEAT_VALUE = 6;
    /**
     * <code>LOGIN_DEVICE = 7;</code>
     */
    public static final int LOGIN_DEVICE_VALUE = 7;
    /**
     * <code>GET_CONTACT = 10;</code>
     */
    public static final int GET_CONTACT_VALUE = 10;
    /**
     * <code>SEARCH_CONTACT = 11;</code>
     */
    public static final int SEARCH_CONTACT_VALUE = 11;
    /**
     * <code>ADD_CONTACT = 12;</code>
     */
    public static final int ADD_CONTACT_VALUE = 12;
    /**
     * <code>ACCEPT_CONTACT = 13;</code>
     */
    public static final int ACCEPT_CONTACT_VALUE = 13;
    /**
     * <code>SYNC_CONTACT = 14;</code>
     */
    public static final int SYNC_CONTACT_VALUE = 14;
    /**
     * <code>CONTACT_ALIAS = 15;</code>
     */
    public static final int CONTACT_ALIAS_VALUE = 15;
    /**
     * <code>ADD_CHATROOM_CONTACT = 16;</code>
     */
    public static final int ADD_CHATROOM_CONTACT_VALUE = 16;
    /**
     * <code>GET_CONTACT_SELF_INFO = 17;</code>
     */
    public static final int GET_CONTACT_SELF_INFO_VALUE = 17;
    /**
     * <code>SET_CONTACT_SELF_INFO = 18;</code>
     */
    public static final int SET_CONTACT_SELF_INFO_VALUE = 18;
    /**
     * <code>GET_CONTACT_SELF_QRCODE = 19;</code>
     */
    public static final int GET_CONTACT_SELF_QRCODE_VALUE = 19;
    /**
     * <code>GET_ROOM_MEMBER = 30;</code>
     */
    public static final int GET_ROOM_MEMBER_VALUE = 30;
    /**
     * <code>ROOM_OPERATION = 31;</code>
     */
    public static final int ROOM_OPERATION_VALUE = 31;
    /**
     * <code>CREATE_ROOM = 32;</code>
     */
    public static final int CREATE_ROOM_VALUE = 32;
    /**
     * <code>SET_ROOM_ANNOUNCEMENT = 33;</code>
     */
    public static final int SET_ROOM_ANNOUNCEMENT_VALUE = 33;
    /**
     * <code>GET_ROOM_ANNOUNCEMENT = 34;</code>
     */
    public static final int GET_ROOM_ANNOUNCEMENT_VALUE = 34;
    /**
     * <code>GET_ROOM_QRCODE = 35;</code>
     */
    public static final int GET_ROOM_QRCODE_VALUE = 35;
    /**
     * <code>ACCEPT_ROOM_INVITATION = 36;</code>
     */
    public static final int ACCEPT_ROOM_INVITATION_VALUE = 36;
    /**
     * <code>SEND_MESSAGE = 50;</code>
     */
    public static final int SEND_MESSAGE_VALUE = 50;
    /**
     * <code>SEND_FILE = 51;</code>
     */
    public static final int SEND_FILE_VALUE = 51;
    /**
     * <code>REVOKE_MESSAGE = 52;</code>
     */
    public static final int REVOKE_MESSAGE_VALUE = 52;
    /**
     * <code>GET_MESSAGE_MEDIA = 53;</code>
     */
    public static final int GET_MESSAGE_MEDIA_VALUE = 53;
    /**
     * <code>GET_ALL_TAG = 70;</code>
     */
    public static final int GET_ALL_TAG_VALUE = 70;
    /**
     * <code>CREATE_TAG = 71;</code>
     */
    public static final int CREATE_TAG_VALUE = 71;
    /**
     * <code>ADD_TAG = 72;</code>
     */
    public static final int ADD_TAG_VALUE = 72;
    /**
     * <code>MODIFY_TAG = 73;</code>
     */
    public static final int MODIFY_TAG_VALUE = 73;
    /**
     * <code>DELETE_TAG = 74;</code>
     */
    public static final int DELETE_TAG_VALUE = 74;


    public final int getNumber() {
      return value;
    }

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ApiType forNumber(int value) {
      switch (value) {
        case 0: return GET_QRCODE;
        case 1: return RECONNECT;
        case 2: return LOGOUT;
        case 3: return INIT;
        case 4: return STOP;
        case 5: return CLOSE;
        case 6: return HEARTBEAT;
        case 7: return LOGIN_DEVICE;
        case 10: return GET_CONTACT;
        case 11: return SEARCH_CONTACT;
        case 12: return ADD_CONTACT;
        case 13: return ACCEPT_CONTACT;
        case 14: return SYNC_CONTACT;
        case 15: return CONTACT_ALIAS;
        case 16: return ADD_CHATROOM_CONTACT;
        case 17: return GET_CONTACT_SELF_INFO;
        case 18: return SET_CONTACT_SELF_INFO;
        case 19: return GET_CONTACT_SELF_QRCODE;
        case 30: return GET_ROOM_MEMBER;
        case 31: return ROOM_OPERATION;
        case 32: return CREATE_ROOM;
        case 33: return SET_ROOM_ANNOUNCEMENT;
        case 34: return GET_ROOM_ANNOUNCEMENT;
        case 35: return GET_ROOM_QRCODE;
        case 36: return ACCEPT_ROOM_INVITATION;
        case 50: return SEND_MESSAGE;
        case 51: return SEND_FILE;
        case 52: return REVOKE_MESSAGE;
        case 53: return GET_MESSAGE_MEDIA;
        case 70: return GET_ALL_TAG;
        case 71: return CREATE_TAG;
        case 72: return ADD_TAG;
        case 73: return MODIFY_TAG;
        case 74: return DELETE_TAG;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PadPlusServer.ApiType)
  }

  /**
   * Protobuf enum {@code PadPlusServer.ResponseType}
   */
  public enum ResponseType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>REQUEST_RESPONSE = 0;</code>
     */
    REQUEST_RESPONSE(0),
    /**
     * <code>DISCONNECT = 1;</code>
     */
    DISCONNECT(1),
    /**
     * <code>INVALID_TOKEN = 2;</code>
     */
    INVALID_TOKEN(2),
    /**
     * <code>LOGIN_DEVICE_INFO = 3;</code>
     */
    LOGIN_DEVICE_INFO(3),
    /**
     * <code>LOGIN_QRCODE = 10;</code>
     */
    LOGIN_QRCODE(10),
    /**
     * <code>QRCODE_SCAN = 11;</code>
     */
    QRCODE_SCAN(11),
    /**
     * <code>ACCOUNT_LOGIN = 12;</code>
     */
    ACCOUNT_LOGIN(12),
    /**
     * <code>ACCOUNT_LOGOUT = 13;</code>
     */
    ACCOUNT_LOGOUT(13),
    /**
     * <code>QRCODE_LOGIN = 14;</code>
     */
    QRCODE_LOGIN(14),
    /**
     * <code>AUTO_LOGIN = 15;</code>
     */
    AUTO_LOGIN(15),
    /**
     * <code>CONTACT_SELF_INFO_GET = 17;</code>
     */
    CONTACT_SELF_INFO_GET(17),
    /**
     * <code>CONTACT_SELF_INFO_SET = 18;</code>
     */
    CONTACT_SELF_INFO_SET(18),
    /**
     * <code>CONTACT_SELF_QRCODE_GET = 19;</code>
     */
    CONTACT_SELF_QRCODE_GET(19),
    /**
     * <code>CONTACT_LIST = 20;</code>
     */
    CONTACT_LIST(20),
    /**
     * <code>CONTACT_MODIFY = 21;</code>
     */
    CONTACT_MODIFY(21),
    /**
     * <code>CONTACT_DELETE = 22;</code>
     */
    CONTACT_DELETE(22),
    /**
     * <code>ROOM_MEMBER_LIST = 23;</code>
     */
    ROOM_MEMBER_LIST(23),
    /**
     * <code>ROOM_MEMBER_MODIFY = 24;</code>
     */
    ROOM_MEMBER_MODIFY(24),
    /**
     * <code>CONTACT_SEARCH = 25;</code>
     */
    CONTACT_SEARCH(25),
    /**
     * <code>CONTACT_ADD = 26;</code>
     */
    CONTACT_ADD(26),
    /**
     * <code>ROOM_QRCODE = 27;</code>
     */
    ROOM_QRCODE(27),
    /**
     * <code>MESSAGE_RECEIVE = 30;</code>
     */
    MESSAGE_RECEIVE(30),
    /**
     * <code>STATUS_NOTIFY = 31;</code>
     */
    STATUS_NOTIFY(31),
    /**
     * <code>MESSAGE_MEDIA_SRC = 32;</code>
     */
    MESSAGE_MEDIA_SRC(32),
    /**
     * <code>MESSAGE_REVOKE = 33;</code>
     */
    MESSAGE_REVOKE(33),
    /**
     * <code>TAG_LIST = 40;</code>
     */
    TAG_LIST(40),
    /**
     * <code>TAG_CREATE = 41;</code>
     */
    TAG_CREATE(41),
    /**
     * <code>TAG_ADD = 42;</code>
     */
    TAG_ADD(42),
    /**
     * <code>TAG_MODIFY = 43;</code>
     */
    TAG_MODIFY(43),
    /**
     * <code>TAG_DELETE = 44;</code>
     */
    TAG_DELETE(44),
    ;

    /**
     * <code>REQUEST_RESPONSE = 0;</code>
     */
    public static final int REQUEST_RESPONSE_VALUE = 0;
    /**
     * <code>DISCONNECT = 1;</code>
     */
    public static final int DISCONNECT_VALUE = 1;
    /**
     * <code>INVALID_TOKEN = 2;</code>
     */
    public static final int INVALID_TOKEN_VALUE = 2;
    /**
     * <code>LOGIN_DEVICE_INFO = 3;</code>
     */
    public static final int LOGIN_DEVICE_INFO_VALUE = 3;
    /**
     * <code>LOGIN_QRCODE = 10;</code>
     */
    public static final int LOGIN_QRCODE_VALUE = 10;
    /**
     * <code>QRCODE_SCAN = 11;</code>
     */
    public static final int QRCODE_SCAN_VALUE = 11;
    /**
     * <code>ACCOUNT_LOGIN = 12;</code>
     */
    public static final int ACCOUNT_LOGIN_VALUE = 12;
    /**
     * <code>ACCOUNT_LOGOUT = 13;</code>
     */
    public static final int ACCOUNT_LOGOUT_VALUE = 13;
    /**
     * <code>QRCODE_LOGIN = 14;</code>
     */
    public static final int QRCODE_LOGIN_VALUE = 14;
    /**
     * <code>AUTO_LOGIN = 15;</code>
     */
    public static final int AUTO_LOGIN_VALUE = 15;
    /**
     * <code>CONTACT_SELF_INFO_GET = 17;</code>
     */
    public static final int CONTACT_SELF_INFO_GET_VALUE = 17;
    /**
     * <code>CONTACT_SELF_INFO_SET = 18;</code>
     */
    public static final int CONTACT_SELF_INFO_SET_VALUE = 18;
    /**
     * <code>CONTACT_SELF_QRCODE_GET = 19;</code>
     */
    public static final int CONTACT_SELF_QRCODE_GET_VALUE = 19;
    /**
     * <code>CONTACT_LIST = 20;</code>
     */
    public static final int CONTACT_LIST_VALUE = 20;
    /**
     * <code>CONTACT_MODIFY = 21;</code>
     */
    public static final int CONTACT_MODIFY_VALUE = 21;
    /**
     * <code>CONTACT_DELETE = 22;</code>
     */
    public static final int CONTACT_DELETE_VALUE = 22;
    /**
     * <code>ROOM_MEMBER_LIST = 23;</code>
     */
    public static final int ROOM_MEMBER_LIST_VALUE = 23;
    /**
     * <code>ROOM_MEMBER_MODIFY = 24;</code>
     */
    public static final int ROOM_MEMBER_MODIFY_VALUE = 24;
    /**
     * <code>CONTACT_SEARCH = 25;</code>
     */
    public static final int CONTACT_SEARCH_VALUE = 25;
    /**
     * <code>CONTACT_ADD = 26;</code>
     */
    public static final int CONTACT_ADD_VALUE = 26;
    /**
     * <code>ROOM_QRCODE = 27;</code>
     */
    public static final int ROOM_QRCODE_VALUE = 27;
    /**
     * <code>MESSAGE_RECEIVE = 30;</code>
     */
    public static final int MESSAGE_RECEIVE_VALUE = 30;
    /**
     * <code>STATUS_NOTIFY = 31;</code>
     */
    public static final int STATUS_NOTIFY_VALUE = 31;
    /**
     * <code>MESSAGE_MEDIA_SRC = 32;</code>
     */
    public static final int MESSAGE_MEDIA_SRC_VALUE = 32;
    /**
     * <code>MESSAGE_REVOKE = 33;</code>
     */
    public static final int MESSAGE_REVOKE_VALUE = 33;
    /**
     * <code>TAG_LIST = 40;</code>
     */
    public static final int TAG_LIST_VALUE = 40;
    /**
     * <code>TAG_CREATE = 41;</code>
     */
    public static final int TAG_CREATE_VALUE = 41;
    /**
     * <code>TAG_ADD = 42;</code>
     */
    public static final int TAG_ADD_VALUE = 42;
    /**
     * <code>TAG_MODIFY = 43;</code>
     */
    public static final int TAG_MODIFY_VALUE = 43;
    /**
     * <code>TAG_DELETE = 44;</code>
     */
    public static final int TAG_DELETE_VALUE = 44;


    public final int getNumber() {
      return value;
    }

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ResponseType forNumber(int value) {
      switch (value) {
        case 0: return REQUEST_RESPONSE;
        case 1: return DISCONNECT;
        case 2: return INVALID_TOKEN;
        case 3: return LOGIN_DEVICE_INFO;
        case 10: return LOGIN_QRCODE;
        case 11: return QRCODE_SCAN;
        case 12: return ACCOUNT_LOGIN;
        case 13: return ACCOUNT_LOGOUT;
        case 14: return QRCODE_LOGIN;
        case 15: return AUTO_LOGIN;
        case 17: return CONTACT_SELF_INFO_GET;
        case 18: return CONTACT_SELF_INFO_SET;
        case 19: return CONTACT_SELF_QRCODE_GET;
        case 20: return CONTACT_LIST;
        case 21: return CONTACT_MODIFY;
        case 22: return CONTACT_DELETE;
        case 23: return ROOM_MEMBER_LIST;
        case 24: return ROOM_MEMBER_MODIFY;
        case 25: return CONTACT_SEARCH;
        case 26: return CONTACT_ADD;
        case 27: return ROOM_QRCODE;
        case 30: return MESSAGE_RECEIVE;
        case 31: return STATUS_NOTIFY;
        case 32: return MESSAGE_MEDIA_SRC;
        case 33: return MESSAGE_REVOKE;
        case 40: return TAG_LIST;
        case 41: return TAG_CREATE;
        case 42: return TAG_ADD;
        case 43: return TAG_MODIFY;
        case 44: return TAG_DELETE;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.getDescriptor().getEnumTypes().get(1);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PadPlusServer.ResponseType)
  }

  public interface RequestObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PadPlusServer.RequestObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string uin = 1;</code>
     * @return Whether the uin field is set.
     */
    boolean hasUin();
    /**
     * <code>optional string uin = 1;</code>
     * @return The uin.
     */
    java.lang.String getUin();
    /**
     * <code>optional string uin = 1;</code>
     * @return The bytes for uin.
     */
    com.google.protobuf.ByteString
        getUinBytes();

    /**
     * <code>optional string requestId = 10;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>optional string requestId = 10;</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <code>optional string requestId = 10;</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <code>required string token = 20;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <code>required string token = 20;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <code>required string token = 20;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <code>required .PadPlusServer.ApiType apiType = 30;</code>
     * @return Whether the apiType field is set.
     */
    boolean hasApiType();
    /**
     * <code>required .PadPlusServer.ApiType apiType = 30;</code>
     * @return The apiType.
     */
    wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType getApiType();

    /**
     * <code>optional string params = 40;</code>
     * @return Whether the params field is set.
     */
    boolean hasParams();
    /**
     * <code>optional string params = 40;</code>
     * @return The params.
     */
    java.lang.String getParams();
    /**
     * <code>optional string params = 40;</code>
     * @return The bytes for params.
     */
    com.google.protobuf.ByteString
        getParamsBytes();

    /**
     * <code>optional string traceId = 50;</code>
     * @return Whether the traceId field is set.
     */
    boolean hasTraceId();
    /**
     * <code>optional string traceId = 50;</code>
     * @return The traceId.
     */
    java.lang.String getTraceId();
    /**
     * <code>optional string traceId = 50;</code>
     * @return The bytes for traceId.
     */
    com.google.protobuf.ByteString
        getTraceIdBytes();
  }
  /**
   * Protobuf type {@code PadPlusServer.RequestObject}
   */
  public static final class RequestObject extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PadPlusServer.RequestObject)
      RequestObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RequestObject.newBuilder() to construct.
    private RequestObject(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RequestObject() {
      uin_ = "";
      requestId_ = "";
      token_ = "";
      apiType_ = 0;
      params_ = "";
      traceId_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RequestObject(
        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: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              uin_ = bs;
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              requestId_ = bs;
              break;
            }
            case 162: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              token_ = bs;
              break;
            }
            case 240: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType value = wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(30, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                apiType_ = rawValue;
              }
              break;
            }
            case 322: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              params_ = bs;
              break;
            }
            case 402: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              traceId_ = 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 wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_RequestObject_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_RequestObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.class, wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.Builder.class);
    }

    private int bitField0_;
    public static final int UIN_FIELD_NUMBER = 1;
    private volatile java.lang.Object uin_;
    /**
     * <code>optional string uin = 1;</code>
     * @return Whether the uin field is set.
     */
    @java.lang.Override
    public boolean hasUin() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string uin = 1;</code>
     * @return The uin.
     */
    @java.lang.Override
    public java.lang.String getUin() {
      java.lang.Object ref = uin_;
      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()) {
          uin_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string uin = 1;</code>
     * @return The bytes for uin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUinBytes() {
      java.lang.Object ref = uin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REQUESTID_FIELD_NUMBER = 10;
    private volatile java.lang.Object requestId_;
    /**
     * <code>optional string requestId = 10;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string requestId = 10;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      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()) {
          requestId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string requestId = 10;</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_FIELD_NUMBER = 20;
    private volatile java.lang.Object token_;
    /**
     * <code>required string token = 20;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required string token = 20;</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;
      }
    }
    /**
     * <code>required string token = 20;</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 APITYPE_FIELD_NUMBER = 30;
    private int apiType_;
    /**
     * <code>required .PadPlusServer.ApiType apiType = 30;</code>
     * @return Whether the apiType field is set.
     */
    @java.lang.Override public boolean hasApiType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .PadPlusServer.ApiType apiType = 30;</code>
     * @return The apiType.
     */
    @java.lang.Override public wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType getApiType() {
      @SuppressWarnings("deprecation")
      wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType result = wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType.valueOf(apiType_);
      return result == null ? wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType.GET_QRCODE : result;
    }

    public static final int PARAMS_FIELD_NUMBER = 40;
    private volatile java.lang.Object params_;
    /**
     * <code>optional string params = 40;</code>
     * @return Whether the params field is set.
     */
    @java.lang.Override
    public boolean hasParams() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string params = 40;</code>
     * @return The params.
     */
    @java.lang.Override
    public java.lang.String getParams() {
      java.lang.Object ref = params_;
      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()) {
          params_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string params = 40;</code>
     * @return The bytes for params.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getParamsBytes() {
      java.lang.Object ref = params_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        params_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRACEID_FIELD_NUMBER = 50;
    private volatile java.lang.Object traceId_;
    /**
     * <code>optional string traceId = 50;</code>
     * @return Whether the traceId field is set.
     */
    @java.lang.Override
    public boolean hasTraceId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string traceId = 50;</code>
     * @return The traceId.
     */
    @java.lang.Override
    public java.lang.String getTraceId() {
      java.lang.Object ref = traceId_;
      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()) {
          traceId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string traceId = 50;</code>
     * @return The bytes for traceId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTraceIdBytes() {
      java.lang.Object ref = traceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        traceId_ = 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;

      if (!hasToken()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasApiType()) {
        memoizedIsInitialized = 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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uin_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, requestId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(30, apiType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 40, params_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 50, traceId_);
      }
      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.GeneratedMessageV3.computeStringSize(1, uin_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, requestId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, token_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(30, apiType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(40, params_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(50, traceId_);
      }
      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 wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject)) {
        return super.equals(obj);
      }
      wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject other = (wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject) obj;

      if (hasUin() != other.hasUin()) return false;
      if (hasUin()) {
        if (!getUin()
            .equals(other.getUin())) return false;
      }
      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (!getRequestId()
            .equals(other.getRequestId())) return false;
      }
      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) return false;
      }
      if (hasApiType() != other.hasApiType()) return false;
      if (hasApiType()) {
        if (apiType_ != other.apiType_) return false;
      }
      if (hasParams() != other.hasParams()) return false;
      if (hasParams()) {
        if (!getParams()
            .equals(other.getParams())) return false;
      }
      if (hasTraceId() != other.hasTraceId()) return false;
      if (hasTraceId()) {
        if (!getTraceId()
            .equals(other.getTraceId())) 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 (hasUin()) {
        hash = (37 * hash) + UIN_FIELD_NUMBER;
        hash = (53 * hash) + getUin().hashCode();
      }
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId().hashCode();
      }
      if (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      if (hasApiType()) {
        hash = (37 * hash) + APITYPE_FIELD_NUMBER;
        hash = (53 * hash) + apiType_;
      }
      if (hasParams()) {
        hash = (37 * hash) + PARAMS_FIELD_NUMBER;
        hash = (53 * hash) + getParams().hashCode();
      }
      if (hasTraceId()) {
        hash = (37 * hash) + TRACEID_FIELD_NUMBER;
        hash = (53 * hash) + getTraceId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject 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 wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject 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 wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject 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(wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PadPlusServer.RequestObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PadPlusServer.RequestObject)
        wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_RequestObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_RequestObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.class, wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.Builder.class);
      }

      // Construct using wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        uin_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        apiType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        params_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        traceId_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_RequestObject_descriptor;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject getDefaultInstanceForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.getDefaultInstance();
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject build() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject buildPartial() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject result = new wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uin_ = uin_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.token_ = token_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.apiType_ = apiType_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.params_ = params_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.traceId_ = traceId_;
        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 wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject) {
          return mergeFrom((wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject other) {
        if (other == wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject.getDefaultInstance()) return this;
        if (other.hasUin()) {
          bitField0_ |= 0x00000001;
          uin_ = other.uin_;
          onChanged();
        }
        if (other.hasRequestId()) {
          bitField0_ |= 0x00000002;
          requestId_ = other.requestId_;
          onChanged();
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000004;
          token_ = other.token_;
          onChanged();
        }
        if (other.hasApiType()) {
          setApiType(other.getApiType());
        }
        if (other.hasParams()) {
          bitField0_ |= 0x00000010;
          params_ = other.params_;
          onChanged();
        }
        if (other.hasTraceId()) {
          bitField0_ |= 0x00000020;
          traceId_ = other.traceId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasToken()) {
          return false;
        }
        if (!hasApiType()) {
          return false;
        }
        return true;
      }

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

      private java.lang.Object uin_ = "";
      /**
       * <code>optional string uin = 1;</code>
       * @return Whether the uin field is set.
       */
      public boolean hasUin() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return The uin.
       */
      public java.lang.String getUin() {
        java.lang.Object ref = uin_;
        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()) {
            uin_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return The bytes for uin.
       */
      public com.google.protobuf.ByteString
          getUinBytes() {
        java.lang.Object ref = uin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string uin = 1;</code>
       * @param value The uin to set.
       * @return This builder for chaining.
       */
      public Builder setUin(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        uin_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUin() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uin_ = getDefaultInstance().getUin();
        onChanged();
        return this;
      }
      /**
       * <code>optional string uin = 1;</code>
       * @param value The bytes for uin to set.
       * @return This builder for chaining.
       */
      public Builder setUinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        uin_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object requestId_ = "";
      /**
       * <code>optional string requestId = 10;</code>
       * @return Whether the requestId field is set.
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        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()) {
            requestId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        requestId_ = getDefaultInstance().getRequestId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        requestId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <code>required string token = 20;</code>
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required string token = 20;</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;
        }
      }
      /**
       * <code>required string token = 20;</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;
        }
      }
      /**
       * <code>required string token = 20;</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;
      }
      /**
       * <code>required string token = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000004);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>required string token = 20;</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 int apiType_ = 0;
      /**
       * <code>required .PadPlusServer.ApiType apiType = 30;</code>
       * @return Whether the apiType field is set.
       */
      @java.lang.Override public boolean hasApiType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .PadPlusServer.ApiType apiType = 30;</code>
       * @return The apiType.
       */
      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType getApiType() {
        @SuppressWarnings("deprecation")
        wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType result = wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType.valueOf(apiType_);
        return result == null ? wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType.GET_QRCODE : result;
      }
      /**
       * <code>required .PadPlusServer.ApiType apiType = 30;</code>
       * @param value The apiType to set.
       * @return This builder for chaining.
       */
      public Builder setApiType(wechaty.padplus.grpc.PadPlusServerOuterClass.ApiType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        apiType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .PadPlusServer.ApiType apiType = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearApiType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        apiType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object params_ = "";
      /**
       * <code>optional string params = 40;</code>
       * @return Whether the params field is set.
       */
      public boolean hasParams() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional string params = 40;</code>
       * @return The params.
       */
      public java.lang.String getParams() {
        java.lang.Object ref = params_;
        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()) {
            params_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string params = 40;</code>
       * @return The bytes for params.
       */
      public com.google.protobuf.ByteString
          getParamsBytes() {
        java.lang.Object ref = params_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          params_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string params = 40;</code>
       * @param value The params to set.
       * @return This builder for chaining.
       */
      public Builder setParams(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        params_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string params = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearParams() {
        bitField0_ = (bitField0_ & ~0x00000010);
        params_ = getDefaultInstance().getParams();
        onChanged();
        return this;
      }
      /**
       * <code>optional string params = 40;</code>
       * @param value The bytes for params to set.
       * @return This builder for chaining.
       */
      public Builder setParamsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        params_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object traceId_ = "";
      /**
       * <code>optional string traceId = 50;</code>
       * @return Whether the traceId field is set.
       */
      public boolean hasTraceId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string traceId = 50;</code>
       * @return The traceId.
       */
      public java.lang.String getTraceId() {
        java.lang.Object ref = traceId_;
        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()) {
            traceId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string traceId = 50;</code>
       * @return The bytes for traceId.
       */
      public com.google.protobuf.ByteString
          getTraceIdBytes() {
        java.lang.Object ref = traceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          traceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string traceId = 50;</code>
       * @param value The traceId to set.
       * @return This builder for chaining.
       */
      public Builder setTraceId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        traceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string traceId = 50;</code>
       * @return This builder for chaining.
       */
      public Builder clearTraceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        traceId_ = getDefaultInstance().getTraceId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string traceId = 50;</code>
       * @param value The bytes for traceId to set.
       * @return This builder for chaining.
       */
      public Builder setTraceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        traceId_ = 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:PadPlusServer.RequestObject)
    }

    // @@protoc_insertion_point(class_scope:PadPlusServer.RequestObject)
    private static final wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject();
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public wechaty.padplus.grpc.PadPlusServerOuterClass.RequestObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ResponseObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PadPlusServer.ResponseObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required string result = 10;</code>
     * @return Whether the result field is set.
     */
    boolean hasResult();
    /**
     * <code>required string result = 10;</code>
     * @return The result.
     */
    java.lang.String getResult();
    /**
     * <code>required string result = 10;</code>
     * @return The bytes for result.
     */
    com.google.protobuf.ByteString
        getResultBytes();
  }
  /**
   * Protobuf type {@code PadPlusServer.ResponseObject}
   */
  public static final class ResponseObject extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PadPlusServer.ResponseObject)
      ResponseObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ResponseObject.newBuilder() to construct.
    private ResponseObject(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ResponseObject() {
      result_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ResponseObject(
        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 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              result_ = 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 wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_ResponseObject_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_ResponseObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.class, wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.Builder.class);
    }

    private int bitField0_;
    public static final int RESULT_FIELD_NUMBER = 10;
    private volatile java.lang.Object result_;
    /**
     * <code>required string result = 10;</code>
     * @return Whether the result field is set.
     */
    @java.lang.Override
    public boolean hasResult() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string result = 10;</code>
     * @return The result.
     */
    @java.lang.Override
    public java.lang.String getResult() {
      java.lang.Object ref = result_;
      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()) {
          result_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string result = 10;</code>
     * @return The bytes for result.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResultBytes() {
      java.lang.Object ref = result_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        result_ = 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;

      if (!hasResult()) {
        memoizedIsInitialized = 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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, result_);
      }
      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.GeneratedMessageV3.computeStringSize(10, result_);
      }
      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 wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject)) {
        return super.equals(obj);
      }
      wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject other = (wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject) obj;

      if (hasResult() != other.hasResult()) return false;
      if (hasResult()) {
        if (!getResult()
            .equals(other.getResult())) 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 (hasResult()) {
        hash = (37 * hash) + RESULT_FIELD_NUMBER;
        hash = (53 * hash) + getResult().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject 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 wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject 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 wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject 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(wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PadPlusServer.ResponseObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PadPlusServer.ResponseObject)
        wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_ResponseObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_ResponseObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.class, wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.Builder.class);
      }

      // Construct using wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_ResponseObject_descriptor;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject getDefaultInstanceForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.getDefaultInstance();
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject build() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject buildPartial() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject result = new wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.result_ = result_;
        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 wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject) {
          return mergeFrom((wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject other) {
        if (other == wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject.getDefaultInstance()) return this;
        if (other.hasResult()) {
          bitField0_ |= 0x00000001;
          result_ = other.result_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.lang.Object result_ = "";
      /**
       * <code>required string result = 10;</code>
       * @return Whether the result field is set.
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string result = 10;</code>
       * @return The result.
       */
      public java.lang.String getResult() {
        java.lang.Object ref = result_;
        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()) {
            result_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string result = 10;</code>
       * @return The bytes for result.
       */
      public com.google.protobuf.ByteString
          getResultBytes() {
        java.lang.Object ref = result_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          result_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string result = 10;</code>
       * @param value The result to set.
       * @return This builder for chaining.
       */
      public Builder setResult(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string result = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000001);
        result_ = getDefaultInstance().getResult();
        onChanged();
        return this;
      }
      /**
       * <code>required string result = 10;</code>
       * @param value The bytes for result to set.
       * @return This builder for chaining.
       */
      public Builder setResultBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        result_ = 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:PadPlusServer.ResponseObject)
    }

    // @@protoc_insertion_point(class_scope:PadPlusServer.ResponseObject)
    private static final wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject();
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InitConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PadPlusServer.InitConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required string token = 10;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <code>required string token = 10;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <code>required string token = 10;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();
  }
  /**
   * Protobuf type {@code PadPlusServer.InitConfig}
   */
  public static final class InitConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PadPlusServer.InitConfig)
      InitConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InitConfig.newBuilder() to construct.
    private InitConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InitConfig() {
      token_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private InitConfig(
        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 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              token_ = 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 wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_InitConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_InitConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.class, wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.Builder.class);
    }

    private int bitField0_;
    public static final int TOKEN_FIELD_NUMBER = 10;
    private volatile java.lang.Object token_;
    /**
     * <code>required string token = 10;</code>
     * @return Whether the token field is set.
     */
    @java.lang.Override
    public boolean hasToken() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required 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;
      }
    }
    /**
     * <code>required 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;
      }
    }

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

      if (!hasToken()) {
        memoizedIsInitialized = 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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, token_);
      }
      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.GeneratedMessageV3.computeStringSize(10, token_);
      }
      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 wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig)) {
        return super.equals(obj);
      }
      wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig other = (wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig) obj;

      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) 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 (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig 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 wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig 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 wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig 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(wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PadPlusServer.InitConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PadPlusServer.InitConfig)
        wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_InitConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_InitConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.class, wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.Builder.class);
      }

      // Construct using wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_InitConfig_descriptor;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig getDefaultInstanceForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.getDefaultInstance();
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig build() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig buildPartial() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig result = new wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.token_ = token_;
        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 wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig) {
          return mergeFrom((wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig other) {
        if (other == wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig.getDefaultInstance()) return this;
        if (other.hasToken()) {
          bitField0_ |= 0x00000001;
          token_ = other.token_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.lang.Object token_ = "";
      /**
       * <code>required string token = 10;</code>
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required 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;
        }
      }
      /**
       * <code>required 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;
        }
      }
      /**
       * <code>required 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_ |= 0x00000001;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string token = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000001);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>required 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_ |= 0x00000001;
        token_ = 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:PadPlusServer.InitConfig)
    }

    // @@protoc_insertion_point(class_scope:PadPlusServer.InitConfig)
    private static final wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig();
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public wechaty.padplus.grpc.PadPlusServerOuterClass.InitConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PadPlusServer.StreamResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string uin = 1;</code>
     * @return Whether the uin field is set.
     */
    boolean hasUin();
    /**
     * <code>optional string uin = 1;</code>
     * @return The uin.
     */
    java.lang.String getUin();
    /**
     * <code>optional string uin = 1;</code>
     * @return The bytes for uin.
     */
    com.google.protobuf.ByteString
        getUinBytes();

    /**
     * <code>optional string requestId = 10;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>optional string requestId = 10;</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <code>optional string requestId = 10;</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <code>required string data = 20;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>required string data = 20;</code>
     * @return The data.
     */
    java.lang.String getData();
    /**
     * <code>required string data = 20;</code>
     * @return The bytes for data.
     */
    com.google.protobuf.ByteString
        getDataBytes();

    /**
     * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
     * @return Whether the responseType field is set.
     */
    boolean hasResponseType();
    /**
     * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
     * @return The responseType.
     */
    wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType getResponseType();

    /**
     * <code>optional string traceId = 40;</code>
     * @return Whether the traceId field is set.
     */
    boolean hasTraceId();
    /**
     * <code>optional string traceId = 40;</code>
     * @return The traceId.
     */
    java.lang.String getTraceId();
    /**
     * <code>optional string traceId = 40;</code>
     * @return The bytes for traceId.
     */
    com.google.protobuf.ByteString
        getTraceIdBytes();
  }
  /**
   * Protobuf type {@code PadPlusServer.StreamResponse}
   */
  public static final class StreamResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PadPlusServer.StreamResponse)
      StreamResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StreamResponse.newBuilder() to construct.
    private StreamResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StreamResponse() {
      uin_ = "";
      requestId_ = "";
      data_ = "";
      responseType_ = 0;
      traceId_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StreamResponse(
        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: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              uin_ = bs;
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              requestId_ = bs;
              break;
            }
            case 162: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              data_ = bs;
              break;
            }
            case 240: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType value = wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(30, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                responseType_ = rawValue;
              }
              break;
            }
            case 322: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              traceId_ = 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 wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_StreamResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_StreamResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.class, wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.Builder.class);
    }

    private int bitField0_;
    public static final int UIN_FIELD_NUMBER = 1;
    private volatile java.lang.Object uin_;
    /**
     * <code>optional string uin = 1;</code>
     * @return Whether the uin field is set.
     */
    @java.lang.Override
    public boolean hasUin() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string uin = 1;</code>
     * @return The uin.
     */
    @java.lang.Override
    public java.lang.String getUin() {
      java.lang.Object ref = uin_;
      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()) {
          uin_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string uin = 1;</code>
     * @return The bytes for uin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUinBytes() {
      java.lang.Object ref = uin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REQUESTID_FIELD_NUMBER = 10;
    private volatile java.lang.Object requestId_;
    /**
     * <code>optional string requestId = 10;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string requestId = 10;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      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()) {
          requestId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string requestId = 10;</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_FIELD_NUMBER = 20;
    private volatile java.lang.Object data_;
    /**
     * <code>required string data = 20;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required string data = 20;</code>
     * @return The data.
     */
    @java.lang.Override
    public java.lang.String getData() {
      java.lang.Object ref = data_;
      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()) {
          data_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string data = 20;</code>
     * @return The bytes for data.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDataBytes() {
      java.lang.Object ref = data_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        data_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESPONSETYPE_FIELD_NUMBER = 30;
    private int responseType_;
    /**
     * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
     * @return Whether the responseType field is set.
     */
    @java.lang.Override public boolean hasResponseType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
     * @return The responseType.
     */
    @java.lang.Override public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType getResponseType() {
      @SuppressWarnings("deprecation")
      wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType result = wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType.valueOf(responseType_);
      return result == null ? wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType.REQUEST_RESPONSE : result;
    }

    public static final int TRACEID_FIELD_NUMBER = 40;
    private volatile java.lang.Object traceId_;
    /**
     * <code>optional string traceId = 40;</code>
     * @return Whether the traceId field is set.
     */
    @java.lang.Override
    public boolean hasTraceId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string traceId = 40;</code>
     * @return The traceId.
     */
    @java.lang.Override
    public java.lang.String getTraceId() {
      java.lang.Object ref = traceId_;
      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()) {
          traceId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string traceId = 40;</code>
     * @return The bytes for traceId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTraceIdBytes() {
      java.lang.Object ref = traceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        traceId_ = 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;

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResponseType()) {
        memoizedIsInitialized = 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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uin_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, requestId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, data_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(30, responseType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 40, traceId_);
      }
      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.GeneratedMessageV3.computeStringSize(1, uin_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, requestId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, data_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(30, responseType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(40, traceId_);
      }
      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 wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse)) {
        return super.equals(obj);
      }
      wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse other = (wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse) obj;

      if (hasUin() != other.hasUin()) return false;
      if (hasUin()) {
        if (!getUin()
            .equals(other.getUin())) return false;
      }
      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (!getRequestId()
            .equals(other.getRequestId())) return false;
      }
      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (hasResponseType() != other.hasResponseType()) return false;
      if (hasResponseType()) {
        if (responseType_ != other.responseType_) return false;
      }
      if (hasTraceId() != other.hasTraceId()) return false;
      if (hasTraceId()) {
        if (!getTraceId()
            .equals(other.getTraceId())) 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 (hasUin()) {
        hash = (37 * hash) + UIN_FIELD_NUMBER;
        hash = (53 * hash) + getUin().hashCode();
      }
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (hasResponseType()) {
        hash = (37 * hash) + RESPONSETYPE_FIELD_NUMBER;
        hash = (53 * hash) + responseType_;
      }
      if (hasTraceId()) {
        hash = (37 * hash) + TRACEID_FIELD_NUMBER;
        hash = (53 * hash) + getTraceId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse 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 wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse 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 wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse 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(wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PadPlusServer.StreamResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PadPlusServer.StreamResponse)
        wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_StreamResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_StreamResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.class, wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.Builder.class);
      }

      // Construct using wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        uin_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        responseType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        traceId_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.internal_static_PadPlusServer_StreamResponse_descriptor;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse getDefaultInstanceForType() {
        return wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.getDefaultInstance();
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse build() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse buildPartial() {
        wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse result = new wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uin_ = uin_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.data_ = data_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.responseType_ = responseType_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.traceId_ = traceId_;
        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 wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse) {
          return mergeFrom((wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse other) {
        if (other == wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse.getDefaultInstance()) return this;
        if (other.hasUin()) {
          bitField0_ |= 0x00000001;
          uin_ = other.uin_;
          onChanged();
        }
        if (other.hasRequestId()) {
          bitField0_ |= 0x00000002;
          requestId_ = other.requestId_;
          onChanged();
        }
        if (other.hasData()) {
          bitField0_ |= 0x00000004;
          data_ = other.data_;
          onChanged();
        }
        if (other.hasResponseType()) {
          setResponseType(other.getResponseType());
        }
        if (other.hasTraceId()) {
          bitField0_ |= 0x00000010;
          traceId_ = other.traceId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasData()) {
          return false;
        }
        if (!hasResponseType()) {
          return false;
        }
        return true;
      }

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

      private java.lang.Object uin_ = "";
      /**
       * <code>optional string uin = 1;</code>
       * @return Whether the uin field is set.
       */
      public boolean hasUin() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return The uin.
       */
      public java.lang.String getUin() {
        java.lang.Object ref = uin_;
        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()) {
            uin_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return The bytes for uin.
       */
      public com.google.protobuf.ByteString
          getUinBytes() {
        java.lang.Object ref = uin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string uin = 1;</code>
       * @param value The uin to set.
       * @return This builder for chaining.
       */
      public Builder setUin(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        uin_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string uin = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUin() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uin_ = getDefaultInstance().getUin();
        onChanged();
        return this;
      }
      /**
       * <code>optional string uin = 1;</code>
       * @param value The bytes for uin to set.
       * @return This builder for chaining.
       */
      public Builder setUinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        uin_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object requestId_ = "";
      /**
       * <code>optional string requestId = 10;</code>
       * @return Whether the requestId field is set.
       */
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        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()) {
            requestId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        requestId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        requestId_ = getDefaultInstance().getRequestId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string requestId = 10;</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        requestId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object data_ = "";
      /**
       * <code>required string data = 20;</code>
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required string data = 20;</code>
       * @return The data.
       */
      public java.lang.String getData() {
        java.lang.Object ref = data_;
        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()) {
            data_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string data = 20;</code>
       * @return The bytes for data.
       */
      public com.google.protobuf.ByteString
          getDataBytes() {
        java.lang.Object ref = data_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          data_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string data = 20;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string data = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }
      /**
       * <code>required string data = 20;</code>
       * @param value The bytes for data to set.
       * @return This builder for chaining.
       */
      public Builder setDataBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        data_ = value;
        onChanged();
        return this;
      }

      private int responseType_ = 0;
      /**
       * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
       * @return Whether the responseType field is set.
       */
      @java.lang.Override public boolean hasResponseType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
       * @return The responseType.
       */
      @java.lang.Override
      public wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType getResponseType() {
        @SuppressWarnings("deprecation")
        wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType result = wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType.valueOf(responseType_);
        return result == null ? wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType.REQUEST_RESPONSE : result;
      }
      /**
       * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
       * @param value The responseType to set.
       * @return This builder for chaining.
       */
      public Builder setResponseType(wechaty.padplus.grpc.PadPlusServerOuterClass.ResponseType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        responseType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .PadPlusServer.ResponseType responseType = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearResponseType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        responseType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object traceId_ = "";
      /**
       * <code>optional string traceId = 40;</code>
       * @return Whether the traceId field is set.
       */
      public boolean hasTraceId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional string traceId = 40;</code>
       * @return The traceId.
       */
      public java.lang.String getTraceId() {
        java.lang.Object ref = traceId_;
        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()) {
            traceId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string traceId = 40;</code>
       * @return The bytes for traceId.
       */
      public com.google.protobuf.ByteString
          getTraceIdBytes() {
        java.lang.Object ref = traceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          traceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string traceId = 40;</code>
       * @param value The traceId to set.
       * @return This builder for chaining.
       */
      public Builder setTraceId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        traceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string traceId = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearTraceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        traceId_ = getDefaultInstance().getTraceId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string traceId = 40;</code>
       * @param value The bytes for traceId to set.
       * @return This builder for chaining.
       */
      public Builder setTraceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        traceId_ = 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:PadPlusServer.StreamResponse)
    }

    // @@protoc_insertion_point(class_scope:PadPlusServer.StreamResponse)
    private static final wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse();
    }

    public static wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public wechaty.padplus.grpc.PadPlusServerOuterClass.StreamResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PadPlusServer_RequestObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PadPlusServer_RequestObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PadPlusServer_ResponseObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PadPlusServer_ResponseObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PadPlusServer_InitConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PadPlusServer_InitConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PadPlusServer_StreamResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PadPlusServer_StreamResponse_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\023PadPlusServer.proto\022\rPadPlusServer\"\210\001\n" +
      "\rRequestObject\022\013\n\003uin\030\001 \001(\t\022\021\n\trequestId" +
      "\030\n \001(\t\022\r\n\005token\030\024 \002(\t\022\'\n\007apiType\030\036 \002(\0162\026" +
      ".PadPlusServer.ApiType\022\016\n\006params\030( \001(\t\022\017" +
      "\n\007traceId\0302 \001(\t\" \n\016ResponseObject\022\016\n\006res" +
      "ult\030\n \002(\t\"\033\n\nInitConfig\022\r\n\005token\030\n \002(\t\"\202" +
      "\001\n\016StreamResponse\022\013\n\003uin\030\001 \001(\t\022\021\n\treques" +
      "tId\030\n \001(\t\022\014\n\004data\030\024 \002(\t\0221\n\014responseType\030" +
      "\036 \002(\0162\033.PadPlusServer.ResponseType\022\017\n\007tr" +
      "aceId\030( \001(\t*\213\005\n\007ApiType\022\016\n\nGET_QRCODE\020\000\022" +
      "\r\n\tRECONNECT\020\001\022\n\n\006LOGOUT\020\002\022\010\n\004INIT\020\003\022\010\n\004" +
      "STOP\020\004\022\t\n\005CLOSE\020\005\022\r\n\tHEARTBEAT\020\006\022\020\n\014LOGI" +
      "N_DEVICE\020\007\022\017\n\013GET_CONTACT\020\n\022\022\n\016SEARCH_CO" +
      "NTACT\020\013\022\017\n\013ADD_CONTACT\020\014\022\022\n\016ACCEPT_CONTA" +
      "CT\020\r\022\020\n\014SYNC_CONTACT\020\016\022\021\n\rCONTACT_ALIAS\020" +
      "\017\022\030\n\024ADD_CHATROOM_CONTACT\020\020\022\031\n\025GET_CONTA" +
      "CT_SELF_INFO\020\021\022\031\n\025SET_CONTACT_SELF_INFO\020" +
      "\022\022\033\n\027GET_CONTACT_SELF_QRCODE\020\023\022\023\n\017GET_RO" +
      "OM_MEMBER\020\036\022\022\n\016ROOM_OPERATION\020\037\022\017\n\013CREAT" +
      "E_ROOM\020 \022\031\n\025SET_ROOM_ANNOUNCEMENT\020!\022\031\n\025G" +
      "ET_ROOM_ANNOUNCEMENT\020\"\022\023\n\017GET_ROOM_QRCOD" +
      "E\020#\022\032\n\026ACCEPT_ROOM_INVITATION\020$\022\020\n\014SEND_" +
      "MESSAGE\0202\022\r\n\tSEND_FILE\0203\022\022\n\016REVOKE_MESSA" +
      "GE\0204\022\025\n\021GET_MESSAGE_MEDIA\0205\022\017\n\013GET_ALL_T" +
      "AG\020F\022\016\n\nCREATE_TAG\020G\022\013\n\007ADD_TAG\020H\022\016\n\nMOD" +
      "IFY_TAG\020I\022\016\n\nDELETE_TAG\020J*\331\004\n\014ResponseTy" +
      "pe\022\024\n\020REQUEST_RESPONSE\020\000\022\016\n\nDISCONNECT\020\001" +
      "\022\021\n\rINVALID_TOKEN\020\002\022\025\n\021LOGIN_DEVICE_INFO" +
      "\020\003\022\020\n\014LOGIN_QRCODE\020\n\022\017\n\013QRCODE_SCAN\020\013\022\021\n" +
      "\rACCOUNT_LOGIN\020\014\022\022\n\016ACCOUNT_LOGOUT\020\r\022\020\n\014" +
      "QRCODE_LOGIN\020\016\022\016\n\nAUTO_LOGIN\020\017\022\031\n\025CONTAC" +
      "T_SELF_INFO_GET\020\021\022\031\n\025CONTACT_SELF_INFO_S" +
      "ET\020\022\022\033\n\027CONTACT_SELF_QRCODE_GET\020\023\022\020\n\014CON" +
      "TACT_LIST\020\024\022\022\n\016CONTACT_MODIFY\020\025\022\022\n\016CONTA" +
      "CT_DELETE\020\026\022\024\n\020ROOM_MEMBER_LIST\020\027\022\026\n\022ROO" +
      "M_MEMBER_MODIFY\020\030\022\022\n\016CONTACT_SEARCH\020\031\022\017\n" +
      "\013CONTACT_ADD\020\032\022\017\n\013ROOM_QRCODE\020\033\022\023\n\017MESSA" +
      "GE_RECEIVE\020\036\022\021\n\rSTATUS_NOTIFY\020\037\022\025\n\021MESSA" +
      "GE_MEDIA_SRC\020 \022\022\n\016MESSAGE_REVOKE\020!\022\014\n\010TA" +
      "G_LIST\020(\022\016\n\nTAG_CREATE\020)\022\013\n\007TAG_ADD\020*\022\016\n" +
      "\nTAG_MODIFY\020+\022\016\n\nTAG_DELETE\020,2\237\001\n\rPadPlu" +
      "sServer\022H\n\007Request\022\034.PadPlusServer.Reque" +
      "stObject\032\035.PadPlusServer.ResponseObject\"" +
      "\000\022D\n\004Init\022\031.PadPlusServer.InitConfig\032\035.P" +
      "adPlusServer.StreamResponse\"\0000\001B\026\n\024wecha" +
      "ty.padplus.grpc"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_PadPlusServer_RequestObject_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_PadPlusServer_RequestObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PadPlusServer_RequestObject_descriptor,
        new java.lang.String[] { "Uin", "RequestId", "Token", "ApiType", "Params", "TraceId", });
    internal_static_PadPlusServer_ResponseObject_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_PadPlusServer_ResponseObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PadPlusServer_ResponseObject_descriptor,
        new java.lang.String[] { "Result", });
    internal_static_PadPlusServer_InitConfig_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_PadPlusServer_InitConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PadPlusServer_InitConfig_descriptor,
        new java.lang.String[] { "Token", });
    internal_static_PadPlusServer_StreamResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_PadPlusServer_StreamResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PadPlusServer_StreamResponse_descriptor,
        new java.lang.String[] { "Uin", "RequestId", "Data", "ResponseType", "TraceId", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}