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

package io.element.protobuf;

public final class SimpleProto {
  private SimpleProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code ROOM_TYPE}
   *
   * <pre>
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   *-* Models enum
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   * </pre>
   */
  public enum ROOM_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SIMPLE_ROOMTYPE_SIMPLE_2V2 = 1;</code>
     */
    SIMPLE_ROOMTYPE_SIMPLE_2V2(0, 1),
    /**
     * <code>SIMPLE_ROOMTYPE_SIMPLE_3V3 = 2;</code>
     */
    SIMPLE_ROOMTYPE_SIMPLE_3V3(1, 2),
    ;

    /**
     * <code>SIMPLE_ROOMTYPE_SIMPLE_2V2 = 1;</code>
     */
    public static final int SIMPLE_ROOMTYPE_SIMPLE_2V2_VALUE = 1;
    /**
     * <code>SIMPLE_ROOMTYPE_SIMPLE_3V3 = 2;</code>
     */
    public static final int SIMPLE_ROOMTYPE_SIMPLE_3V3_VALUE = 2;


    public final int getNumber() { return value; }

    public static ROOM_TYPE valueOf(int value) {
      switch (value) {
        case 1: return SIMPLE_ROOMTYPE_SIMPLE_2V2;
        case 2: return SIMPLE_ROOMTYPE_SIMPLE_3V3;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ROOM_TYPE)
  }

  /**
   * Protobuf enum {@code PHASE_TYPE}
   */
  public enum PHASE_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PHASE_NONE = 1;</code>
     */
    PHASE_NONE(0, 1),
    /**
     * <code>PHASE_BEGIN = 2;</code>
     */
    PHASE_BEGIN(1, 2),
    /**
     * <code>PHASE_SKILLCARD = 3;</code>
     */
    PHASE_SKILLCARD(2, 3),
    /**
     * <code>PHASE_BATTLE_ASK = 4;</code>
     */
    PHASE_BATTLE_ASK(3, 4),
    /**
     * <code>PHASE_BATTLE_ASSIT = 5;</code>
     */
    PHASE_BATTLE_ASSIT(4, 5),
    /**
     * <code>PHASE_BATTLE_SKILLCARD = 6;</code>
     */
    PHASE_BATTLE_SKILLCARD(5, 6),
    /**
     * <code>PHASE_BATTLE_CALCULATE = 7;</code>
     */
    PHASE_BATTLE_CALCULATE(6, 7),
    /**
     * <code>PHASE_RECHARGE = 8;</code>
     */
    PHASE_RECHARGE(7, 8),
    /**
     * <code>PHASE_DISCARD = 9;</code>
     */
    PHASE_DISCARD(8, 9),
    /**
     * <code>PHASE_GAME_BEGIN = 10;</code>
     *
     * <pre>
     * ÓÎÏ·¿ªÊ¼ ½×¶Î
     * </pre>
     */
    PHASE_GAME_BEGIN(9, 10),
    /**
     * <code>PHASE_CHOOSE_CHARACTER = 11;</code>
     *
     * <pre>
     * ÓÎÏ·Ñ¡ÈË ½×¶Î
     * </pre>
     */
    PHASE_CHOOSE_CHARACTER(10, 11),
    /**
     * <code>PHASE_GAME_RECHARGE = 12;</code>
     *
     * <pre>
     * ÓÎÏ·ÆðÊ¼·¢ÅÆ ½×¶Î
     * </pre>
     */
    PHASE_GAME_RECHARGE(11, 12),
    /**
     * <code>PHASE_NOT_ACTIVE = 13;</code>
     *
     * <pre>
     * ±ðÈËµÄÖ÷¶¯»ØºÏ
     * </pre>
     */
    PHASE_NOT_ACTIVE(12, 13),
    /**
     * <code>PHASE_NUM = 14;</code>
     */
    PHASE_NUM(13, 14),
    ;

    /**
     * <code>PHASE_NONE = 1;</code>
     */
    public static final int PHASE_NONE_VALUE = 1;
    /**
     * <code>PHASE_BEGIN = 2;</code>
     */
    public static final int PHASE_BEGIN_VALUE = 2;
    /**
     * <code>PHASE_SKILLCARD = 3;</code>
     */
    public static final int PHASE_SKILLCARD_VALUE = 3;
    /**
     * <code>PHASE_BATTLE_ASK = 4;</code>
     */
    public static final int PHASE_BATTLE_ASK_VALUE = 4;
    /**
     * <code>PHASE_BATTLE_ASSIT = 5;</code>
     */
    public static final int PHASE_BATTLE_ASSIT_VALUE = 5;
    /**
     * <code>PHASE_BATTLE_SKILLCARD = 6;</code>
     */
    public static final int PHASE_BATTLE_SKILLCARD_VALUE = 6;
    /**
     * <code>PHASE_BATTLE_CALCULATE = 7;</code>
     */
    public static final int PHASE_BATTLE_CALCULATE_VALUE = 7;
    /**
     * <code>PHASE_RECHARGE = 8;</code>
     */
    public static final int PHASE_RECHARGE_VALUE = 8;
    /**
     * <code>PHASE_DISCARD = 9;</code>
     */
    public static final int PHASE_DISCARD_VALUE = 9;
    /**
     * <code>PHASE_GAME_BEGIN = 10;</code>
     *
     * <pre>
     * ÓÎÏ·¿ªÊ¼ ½×¶Î
     * </pre>
     */
    public static final int PHASE_GAME_BEGIN_VALUE = 10;
    /**
     * <code>PHASE_CHOOSE_CHARACTER = 11;</code>
     *
     * <pre>
     * ÓÎÏ·Ñ¡ÈË ½×¶Î
     * </pre>
     */
    public static final int PHASE_CHOOSE_CHARACTER_VALUE = 11;
    /**
     * <code>PHASE_GAME_RECHARGE = 12;</code>
     *
     * <pre>
     * ÓÎÏ·ÆðÊ¼·¢ÅÆ ½×¶Î
     * </pre>
     */
    public static final int PHASE_GAME_RECHARGE_VALUE = 12;
    /**
     * <code>PHASE_NOT_ACTIVE = 13;</code>
     *
     * <pre>
     * ±ðÈËµÄÖ÷¶¯»ØºÏ
     * </pre>
     */
    public static final int PHASE_NOT_ACTIVE_VALUE = 13;
    /**
     * <code>PHASE_NUM = 14;</code>
     */
    public static final int PHASE_NUM_VALUE = 14;


    public final int getNumber() { return value; }

    public static PHASE_TYPE valueOf(int value) {
      switch (value) {
        case 1: return PHASE_NONE;
        case 2: return PHASE_BEGIN;
        case 3: return PHASE_SKILLCARD;
        case 4: return PHASE_BATTLE_ASK;
        case 5: return PHASE_BATTLE_ASSIT;
        case 6: return PHASE_BATTLE_SKILLCARD;
        case 7: return PHASE_BATTLE_CALCULATE;
        case 8: return PHASE_RECHARGE;
        case 9: return PHASE_DISCARD;
        case 10: return PHASE_GAME_BEGIN;
        case 11: return PHASE_CHOOSE_CHARACTER;
        case 12: return PHASE_GAME_RECHARGE;
        case 13: return PHASE_NOT_ACTIVE;
        case 14: return PHASE_NUM;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(1);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PHASE_TYPE)
  }

  /**
   * Protobuf enum {@code REACTOR_TYPE}
   */
  public enum REACTOR_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>REACTOR_NONE = 1;</code>
     */
    REACTOR_NONE(0, 1),
    /**
     * <code>REACTOR_CARD = 2;</code>
     *
     * <pre>
     * 
     * </pre>
     */
    REACTOR_CARD(1, 2),
    /**
     * <code>REACTOR_SKILL = 3;</code>
     *
     * <pre>
     * 
     * </pre>
     */
    REACTOR_SKILL(2, 3),
    ;

    /**
     * <code>REACTOR_NONE = 1;</code>
     */
    public static final int REACTOR_NONE_VALUE = 1;
    /**
     * <code>REACTOR_CARD = 2;</code>
     *
     * <pre>
     * 
     * </pre>
     */
    public static final int REACTOR_CARD_VALUE = 2;
    /**
     * <code>REACTOR_SKILL = 3;</code>
     *
     * <pre>
     * 
     * </pre>
     */
    public static final int REACTOR_SKILL_VALUE = 3;


    public final int getNumber() { return value; }

    public static REACTOR_TYPE valueOf(int value) {
      switch (value) {
        case 1: return REACTOR_NONE;
        case 2: return REACTOR_CARD;
        case 3: return REACTOR_SKILL;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(2);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:REACTOR_TYPE)
  }

  /**
   * Protobuf enum {@code G2S_MSGTYPE}
   *
   * <pre>
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   *-* Apis -- gate to server
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   * </pre>
   */
  public enum G2S_MSGTYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>G2S_REQUEST_GLOBAL_GAME_BEGIN = 1;</code>
     *
     * <pre>
     * ÇëÇóÓÎÏ·¿ªÊ¼
     * </pre>
     */
    G2S_REQUEST_GLOBAL_GAME_BEGIN(0, 1),
    /**
     * <code>G2S_REQUEST_GLOBAL_GAME_END = 2;</code>
     *
     * <pre>
     * ÇëÇóÓÎÏ·½áÊø
     * </pre>
     */
    G2S_REQUEST_GLOBAL_GAME_END(1, 2),
    /**
     * <code>G2S_REQUEST_NEXT_PHASE = 3;</code>
     *
     * <pre>
     * Ö÷¶¯½øÈëÏÂÒ»¸ö½×¶Î
     * </pre>
     */
    G2S_REQUEST_NEXT_PHASE(2, 3),
    /**
     * <code>G2S_REQUEST_GETINFO_PHASE = 4;</code>
     *
     * <pre>
     * µÃµ½Ö¸¶¨Íæ¼Òµ±Ç°½×¶ÎÐÅÏ¢
     * </pre>
     */
    G2S_REQUEST_GETINFO_PHASE(3, 4),
    /**
     * <code>G2S_REQUEST_GETINFO_ROOM = 5;</code>
     *
     * <pre>
     * µÃµ½·¿¼äµÄÕûÌåÐÅÏ¢
     * </pre>
     */
    G2S_REQUEST_GETINFO_ROOM(4, 5),
    /**
     * <code>G2S_REQUEST_CHOOSE_CHARACTER = 6;</code>
     *
     * <pre>
     * Ñ¡ÔñÌØ¶¨½ÇÉ«
     * </pre>
     */
    G2S_REQUEST_CHOOSE_CHARACTER(5, 6),
    ;

    /**
     * <code>G2S_REQUEST_GLOBAL_GAME_BEGIN = 1;</code>
     *
     * <pre>
     * ÇëÇóÓÎÏ·¿ªÊ¼
     * </pre>
     */
    public static final int G2S_REQUEST_GLOBAL_GAME_BEGIN_VALUE = 1;
    /**
     * <code>G2S_REQUEST_GLOBAL_GAME_END = 2;</code>
     *
     * <pre>
     * ÇëÇóÓÎÏ·½áÊø
     * </pre>
     */
    public static final int G2S_REQUEST_GLOBAL_GAME_END_VALUE = 2;
    /**
     * <code>G2S_REQUEST_NEXT_PHASE = 3;</code>
     *
     * <pre>
     * Ö÷¶¯½øÈëÏÂÒ»¸ö½×¶Î
     * </pre>
     */
    public static final int G2S_REQUEST_NEXT_PHASE_VALUE = 3;
    /**
     * <code>G2S_REQUEST_GETINFO_PHASE = 4;</code>
     *
     * <pre>
     * µÃµ½Ö¸¶¨Íæ¼Òµ±Ç°½×¶ÎÐÅÏ¢
     * </pre>
     */
    public static final int G2S_REQUEST_GETINFO_PHASE_VALUE = 4;
    /**
     * <code>G2S_REQUEST_GETINFO_ROOM = 5;</code>
     *
     * <pre>
     * µÃµ½·¿¼äµÄÕûÌåÐÅÏ¢
     * </pre>
     */
    public static final int G2S_REQUEST_GETINFO_ROOM_VALUE = 5;
    /**
     * <code>G2S_REQUEST_CHOOSE_CHARACTER = 6;</code>
     *
     * <pre>
     * Ñ¡ÔñÌØ¶¨½ÇÉ«
     * </pre>
     */
    public static final int G2S_REQUEST_CHOOSE_CHARACTER_VALUE = 6;


    public final int getNumber() { return value; }

    public static G2S_MSGTYPE valueOf(int value) {
      switch (value) {
        case 1: return G2S_REQUEST_GLOBAL_GAME_BEGIN;
        case 2: return G2S_REQUEST_GLOBAL_GAME_END;
        case 3: return G2S_REQUEST_NEXT_PHASE;
        case 4: return G2S_REQUEST_GETINFO_PHASE;
        case 5: return G2S_REQUEST_GETINFO_ROOM;
        case 6: return G2S_REQUEST_CHOOSE_CHARACTER;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(3);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:G2S_MSGTYPE)
  }

  /**
   * Protobuf enum {@code S2G_MSGTYPE}
   *
   * <pre>
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   *-* Apis -- server to gate
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
   * </pre>
   */
  public enum S2G_MSGTYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>S2G_NOTIFY_GLOBAL_GAME_BEGIN = 1;</code>
     *
     * <pre>
     * ÓÎÏ·¿ªÊ¼µÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_GAME_BEGIN(0, 1),
    /**
     * <code>S2G_NOTIFY_GLOBAL_GAME_END = 2;</code>
     *
     * <pre>
     * ÓÎÏ·½áÊøµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_GAME_END(1, 2),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BEGIN = 3;</code>
     *
     * <pre>
     * ½×¶Î¿ªÊ¼µÄÍ¨Öª	
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_BEGIN(2, 3),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_SKILLCARD = 4;</code>
     *
     * <pre>
     * ¼¼ÅÆ½×¶Î¿ªÊ¼µÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_SKILLCARD(3, 4),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASK = 5;</code>
     *
     * <pre>
     * Õ½¶·¿ªÊ¼Ñ¯ÎÊµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASK(4, 5),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASSIT = 6;</code>
     *
     * <pre>
     * Ô®ÖúÑ¡ÔñµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASSIT(5, 6),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_SKILLCARD = 7;</code>
     *
     * <pre>
     * Ô®Öú¼¼ÄÜÅÆ²¹³äµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_BATTLE_SKILLCARD(6, 7),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE = 8;</code>
     *
     * <pre>
     * ½áËãµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE(7, 8),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_RECHARGE = 9;</code>
     *
     * <pre>
     * ²¹ÅÆµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_RECHARGE(8, 9),
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_DISCARD = 10;</code>
     *
     * <pre>
     * ÆúÅÆµÄÍ¨Öª
     * </pre>
     */
    S2G_NOTIFY_GLOBAL_PHASE_DISCARD(9, 10),
    /**
     * <code>S2G_RESP_GETINFO_PHASE = 11;</code>
     *
     * <pre>
     * ÏìÓ¦ µÃµ½Ö¸¶¨Íæ¼Òµ±Ç°½×¶ÎÐÅÏ¢
     * </pre>
     */
    S2G_RESP_GETINFO_PHASE(10, 11),
    /**
     * <code>S2G_RESP_GETINFO_ROOM = 12;</code>
     *
     * <pre>
     * ÏìÓ¦ µÃµ½·¿¼äµÄÕûÌåÐÅÏ¢	
     * </pre>
     */
    S2G_RESP_GETINFO_ROOM(11, 12),
    /**
     * <code>S2G_RESP_CHOOSE_CHARACTER = 13;</code>
     *
     * <pre>
     * ÏìÓ¦ Ñ¡ÔñÌØ¶¨½ÇÉ«
     * </pre>
     */
    S2G_RESP_CHOOSE_CHARACTER(12, 13),
    /**
     * <code>S2G_RESP_SKIP_PHAASE = 14;</code>
     *
     * <pre>
     * ÏìÓ¦ Ìø¹ýÄ³¸ö½×¶Î
     * </pre>
     */
    S2G_RESP_SKIP_PHAASE(13, 14),
    /**
     * <code>S2G_NOTIFY_CHOOSE_CHARACTER = 100;</code>
     *
     * <pre>
     * Í¨Öª Ñ¡ÔñÌØ¶¨½ÇÉ«	
     * </pre>
     */
    S2G_NOTIFY_CHOOSE_CHARACTER(14, 100),
    /**
     * <code>S2G_NOTIFY_ASK_PERFECT = 101;</code>
     *
     * <pre>
     * Í¨Öª ÇëÇó±ùÐÄ¾÷
     * </pre>
     */
    S2G_NOTIFY_ASK_PERFECT(15, 101),
    /**
     * <code>S2G_NOTIFY_ASK_STEALTH = 102;</code>
     *
     * <pre>
     * Í¨Öª ÇëÇóÒþ¹Æ
     * </pre>
     */
    S2G_NOTIFY_ASK_STEALTH(16, 102),
    ;

    /**
     * <code>S2G_NOTIFY_GLOBAL_GAME_BEGIN = 1;</code>
     *
     * <pre>
     * ÓÎÏ·¿ªÊ¼µÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_GAME_BEGIN_VALUE = 1;
    /**
     * <code>S2G_NOTIFY_GLOBAL_GAME_END = 2;</code>
     *
     * <pre>
     * ÓÎÏ·½áÊøµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_GAME_END_VALUE = 2;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BEGIN = 3;</code>
     *
     * <pre>
     * ½×¶Î¿ªÊ¼µÄÍ¨Öª	
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_BEGIN_VALUE = 3;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_SKILLCARD = 4;</code>
     *
     * <pre>
     * ¼¼ÅÆ½×¶Î¿ªÊ¼µÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_SKILLCARD_VALUE = 4;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASK = 5;</code>
     *
     * <pre>
     * Õ½¶·¿ªÊ¼Ñ¯ÎÊµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASK_VALUE = 5;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASSIT = 6;</code>
     *
     * <pre>
     * Ô®ÖúÑ¡ÔñµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASSIT_VALUE = 6;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_SKILLCARD = 7;</code>
     *
     * <pre>
     * Ô®Öú¼¼ÄÜÅÆ²¹³äµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_BATTLE_SKILLCARD_VALUE = 7;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE = 8;</code>
     *
     * <pre>
     * ½áËãµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE_VALUE = 8;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_RECHARGE = 9;</code>
     *
     * <pre>
     * ²¹ÅÆµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_RECHARGE_VALUE = 9;
    /**
     * <code>S2G_NOTIFY_GLOBAL_PHASE_DISCARD = 10;</code>
     *
     * <pre>
     * ÆúÅÆµÄÍ¨Öª
     * </pre>
     */
    public static final int S2G_NOTIFY_GLOBAL_PHASE_DISCARD_VALUE = 10;
    /**
     * <code>S2G_RESP_GETINFO_PHASE = 11;</code>
     *
     * <pre>
     * ÏìÓ¦ µÃµ½Ö¸¶¨Íæ¼Òµ±Ç°½×¶ÎÐÅÏ¢
     * </pre>
     */
    public static final int S2G_RESP_GETINFO_PHASE_VALUE = 11;
    /**
     * <code>S2G_RESP_GETINFO_ROOM = 12;</code>
     *
     * <pre>
     * ÏìÓ¦ µÃµ½·¿¼äµÄÕûÌåÐÅÏ¢	
     * </pre>
     */
    public static final int S2G_RESP_GETINFO_ROOM_VALUE = 12;
    /**
     * <code>S2G_RESP_CHOOSE_CHARACTER = 13;</code>
     *
     * <pre>
     * ÏìÓ¦ Ñ¡ÔñÌØ¶¨½ÇÉ«
     * </pre>
     */
    public static final int S2G_RESP_CHOOSE_CHARACTER_VALUE = 13;
    /**
     * <code>S2G_RESP_SKIP_PHAASE = 14;</code>
     *
     * <pre>
     * ÏìÓ¦ Ìø¹ýÄ³¸ö½×¶Î
     * </pre>
     */
    public static final int S2G_RESP_SKIP_PHAASE_VALUE = 14;
    /**
     * <code>S2G_NOTIFY_CHOOSE_CHARACTER = 100;</code>
     *
     * <pre>
     * Í¨Öª Ñ¡ÔñÌØ¶¨½ÇÉ«	
     * </pre>
     */
    public static final int S2G_NOTIFY_CHOOSE_CHARACTER_VALUE = 100;
    /**
     * <code>S2G_NOTIFY_ASK_PERFECT = 101;</code>
     *
     * <pre>
     * Í¨Öª ÇëÇó±ùÐÄ¾÷
     * </pre>
     */
    public static final int S2G_NOTIFY_ASK_PERFECT_VALUE = 101;
    /**
     * <code>S2G_NOTIFY_ASK_STEALTH = 102;</code>
     *
     * <pre>
     * Í¨Öª ÇëÇóÒþ¹Æ
     * </pre>
     */
    public static final int S2G_NOTIFY_ASK_STEALTH_VALUE = 102;


    public final int getNumber() { return value; }

    public static S2G_MSGTYPE valueOf(int value) {
      switch (value) {
        case 1: return S2G_NOTIFY_GLOBAL_GAME_BEGIN;
        case 2: return S2G_NOTIFY_GLOBAL_GAME_END;
        case 3: return S2G_NOTIFY_GLOBAL_PHASE_BEGIN;
        case 4: return S2G_NOTIFY_GLOBAL_PHASE_SKILLCARD;
        case 5: return S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASK;
        case 6: return S2G_NOTIFY_GLOBAL_PHASE_BATTLE_ASSIT;
        case 7: return S2G_NOTIFY_GLOBAL_PHASE_BATTLE_SKILLCARD;
        case 8: return S2G_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE;
        case 9: return S2G_NOTIFY_GLOBAL_PHASE_RECHARGE;
        case 10: return S2G_NOTIFY_GLOBAL_PHASE_DISCARD;
        case 11: return S2G_RESP_GETINFO_PHASE;
        case 12: return S2G_RESP_GETINFO_ROOM;
        case 13: return S2G_RESP_CHOOSE_CHARACTER;
        case 14: return S2G_RESP_SKIP_PHAASE;
        case 100: return S2G_NOTIFY_CHOOSE_CHARACTER;
        case 101: return S2G_NOTIFY_ASK_PERFECT;
        case 102: return S2G_NOTIFY_ASK_STEALTH;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(4);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:S2G_MSGTYPE)
  }

  /**
   * Protobuf enum {@code C2G_MSGTYPE}
   */
  public enum C2G_MSGTYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>C2G_REQUEST_TRANS = 1;</code>
     *
     * <pre>
     * gate ÖÐ×ªÕ¾
     * </pre>
     */
    C2G_REQUEST_TRANS(0, 1),
    ;

    /**
     * <code>C2G_REQUEST_TRANS = 1;</code>
     *
     * <pre>
     * gate ÖÐ×ªÕ¾
     * </pre>
     */
    public static final int C2G_REQUEST_TRANS_VALUE = 1;


    public final int getNumber() { return value; }

    public static C2G_MSGTYPE valueOf(int value) {
      switch (value) {
        case 1: return C2G_REQUEST_TRANS;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(5);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:C2G_MSGTYPE)
  }

  /**
   * Protobuf enum {@code G2C_MSGTYPE}
   */
  public enum G2C_MSGTYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>G2C_REQUEST_TRANS = 1;</code>
     *
     * <pre>
     * gate ÖÐ×ªÕ¾
     * </pre>
     */
    G2C_REQUEST_TRANS(0, 1),
    ;

    /**
     * <code>G2C_REQUEST_TRANS = 1;</code>
     *
     * <pre>
     * gate ÖÐ×ªÕ¾
     * </pre>
     */
    public static final int G2C_REQUEST_TRANS_VALUE = 1;


    public final int getNumber() { return value; }

    public static G2C_MSGTYPE valueOf(int value) {
      switch (value) {
        case 1: return G2C_REQUEST_TRANS;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.getDescriptor().getEnumTypes().get(6);
    }

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

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

    private final int index;
    private final int value;

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

    // @@protoc_insertion_point(enum_scope:G2C_MSGTYPE)
  }

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

    // required int64 id = 1;
    /**
     * <code>required int64 id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>required int64 id = 1;</code>
     */
    long getId();

    // required string name = 2;
    /**
     * <code>required string name = 2;</code>
     */
    boolean hasName();
    /**
     * <code>required string name = 2;</code>
     */
    java.lang.String getName();
    /**
     * <code>required string name = 2;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // required int32 roleid = 3;
    /**
     * <code>required int32 roleid = 3;</code>
     */
    boolean hasRoleid();
    /**
     * <code>required int32 roleid = 3;</code>
     */
    int getRoleid();

    // required int32 location = 4;
    /**
     * <code>required int32 location = 4;</code>
     */
    boolean hasLocation();
    /**
     * <code>required int32 location = 4;</code>
     */
    int getLocation();
  }
  /**
   * Protobuf type {@code Player}
   */
  public static final class Player extends
      com.google.protobuf.GeneratedMessage
      implements PlayerOrBuilder {
    // Use Player.newBuilder() to construct.
    private Player(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Player(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Player getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Player(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt64();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              name_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              roleid_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              location_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Player_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Player_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Player.class, io.element.protobuf.SimpleProto.Player.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <code>required int64 id = 1;</code>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 id = 1;</code>
     */
    public long getId() {
      return id_;
    }

    // required string name = 2;
    public static final int NAME_FIELD_NUMBER = 2;
    private java.lang.Object name_;
    /**
     * <code>required string name = 2;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string name = 2;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string name = 2;</code>
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required int32 roleid = 3;
    public static final int ROLEID_FIELD_NUMBER = 3;
    private int roleid_;
    /**
     * <code>required int32 roleid = 3;</code>
     */
    public boolean hasRoleid() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 roleid = 3;</code>
     */
    public int getRoleid() {
      return roleid_;
    }

    // required int32 location = 4;
    public static final int LOCATION_FIELD_NUMBER = 4;
    private int location_;
    /**
     * <code>required int32 location = 4;</code>
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 location = 4;</code>
     */
    public int getLocation() {
      return location_;
    }

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

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRoleid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLocation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, roleid_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, location_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.Player parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Player parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Player parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Player parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Player prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Player}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.PlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Player_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Player_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Player.class, io.element.protobuf.SimpleProto.Player.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Player.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        roleid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        location_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Player_descriptor;
      }

      public io.element.protobuf.SimpleProto.Player getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Player.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Player build() {
        io.element.protobuf.SimpleProto.Player result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Player buildPartial() {
        io.element.protobuf.SimpleProto.Player result = new io.element.protobuf.SimpleProto.Player(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.roleid_ = roleid_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.location_ = location_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Player) {
          return mergeFrom((io.element.protobuf.SimpleProto.Player)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Player other) {
        if (other == io.element.protobuf.SimpleProto.Player.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasRoleid()) {
          setRoleid(other.getRoleid());
        }
        if (other.hasLocation()) {
          setLocation(other.getLocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasId()) {
          
          return false;
        }
        if (!hasName()) {
          
          return false;
        }
        if (!hasRoleid()) {
          
          return false;
        }
        if (!hasLocation()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 id = 1;
      private long id_ ;
      /**
       * <code>required int64 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

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

      // required int32 roleid = 3;
      private int roleid_ ;
      /**
       * <code>required int32 roleid = 3;</code>
       */
      public boolean hasRoleid() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 roleid = 3;</code>
       */
      public int getRoleid() {
        return roleid_;
      }
      /**
       * <code>required int32 roleid = 3;</code>
       */
      public Builder setRoleid(int value) {
        bitField0_ |= 0x00000004;
        roleid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 roleid = 3;</code>
       */
      public Builder clearRoleid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        roleid_ = 0;
        onChanged();
        return this;
      }

      // required int32 location = 4;
      private int location_ ;
      /**
       * <code>required int32 location = 4;</code>
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 location = 4;</code>
       */
      public int getLocation() {
        return location_;
      }
      /**
       * <code>required int32 location = 4;</code>
       */
      public Builder setLocation(int value) {
        bitField0_ |= 0x00000008;
        location_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 location = 4;</code>
       */
      public Builder clearLocation() {
        bitField0_ = (bitField0_ & ~0x00000008);
        location_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Player)
    }

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

    // @@protoc_insertion_point(class_scope:Player)
  }

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

    // repeated .Player team_red = 1;
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    java.util.List<io.element.protobuf.SimpleProto.Player> 
        getTeamRedList();
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    io.element.protobuf.SimpleProto.Player getTeamRed(int index);
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    int getTeamRedCount();
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
        getTeamRedOrBuilderList();
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamRedOrBuilder(
        int index);

    // repeated .Player team_blue = 2;
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    java.util.List<io.element.protobuf.SimpleProto.Player> 
        getTeamBlueList();
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    io.element.protobuf.SimpleProto.Player getTeamBlue(int index);
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    int getTeamBlueCount();
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
        getTeamBlueOrBuilderList();
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamBlueOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code Team}
   */
  public static final class Team extends
      com.google.protobuf.GeneratedMessage
      implements TeamOrBuilder {
    // Use Team.newBuilder() to construct.
    private Team(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Team(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Team getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Team(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                teamRed_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Player>();
                mutable_bitField0_ |= 0x00000001;
              }
              teamRed_.add(input.readMessage(io.element.protobuf.SimpleProto.Player.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                teamBlue_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Player>();
                mutable_bitField0_ |= 0x00000002;
              }
              teamBlue_.add(input.readMessage(io.element.protobuf.SimpleProto.Player.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          teamRed_ = java.util.Collections.unmodifiableList(teamRed_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          teamBlue_ = java.util.Collections.unmodifiableList(teamBlue_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Team_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Team_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Team.class, io.element.protobuf.SimpleProto.Team.Builder.class);
    }

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

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

    // repeated .Player team_red = 1;
    public static final int TEAM_RED_FIELD_NUMBER = 1;
    private java.util.List<io.element.protobuf.SimpleProto.Player> teamRed_;
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    public java.util.List<io.element.protobuf.SimpleProto.Player> getTeamRedList() {
      return teamRed_;
    }
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    public java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
        getTeamRedOrBuilderList() {
      return teamRed_;
    }
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    public int getTeamRedCount() {
      return teamRed_.size();
    }
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    public io.element.protobuf.SimpleProto.Player getTeamRed(int index) {
      return teamRed_.get(index);
    }
    /**
     * <code>repeated .Player team_red = 1;</code>
     */
    public io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamRedOrBuilder(
        int index) {
      return teamRed_.get(index);
    }

    // repeated .Player team_blue = 2;
    public static final int TEAM_BLUE_FIELD_NUMBER = 2;
    private java.util.List<io.element.protobuf.SimpleProto.Player> teamBlue_;
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    public java.util.List<io.element.protobuf.SimpleProto.Player> getTeamBlueList() {
      return teamBlue_;
    }
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    public java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
        getTeamBlueOrBuilderList() {
      return teamBlue_;
    }
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    public int getTeamBlueCount() {
      return teamBlue_.size();
    }
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    public io.element.protobuf.SimpleProto.Player getTeamBlue(int index) {
      return teamBlue_.get(index);
    }
    /**
     * <code>repeated .Player team_blue = 2;</code>
     */
    public io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamBlueOrBuilder(
        int index) {
      return teamBlue_.get(index);
    }

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

      for (int i = 0; i < getTeamRedCount(); i++) {
        if (!getTeamRed(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getTeamBlueCount(); i++) {
        if (!getTeamBlue(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    public static io.element.protobuf.SimpleProto.Team parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Team parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Team parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Team parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Team prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Team}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.TeamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Team_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Team_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Team.class, io.element.protobuf.SimpleProto.Team.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Team.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (teamRedBuilder_ == null) {
          teamRed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          teamRedBuilder_.clear();
        }
        if (teamBlueBuilder_ == null) {
          teamBlue_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          teamBlueBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Team_descriptor;
      }

      public io.element.protobuf.SimpleProto.Team getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Team.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Team build() {
        io.element.protobuf.SimpleProto.Team result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Team buildPartial() {
        io.element.protobuf.SimpleProto.Team result = new io.element.protobuf.SimpleProto.Team(this);
        int from_bitField0_ = bitField0_;
        if (teamRedBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            teamRed_ = java.util.Collections.unmodifiableList(teamRed_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.teamRed_ = teamRed_;
        } else {
          result.teamRed_ = teamRedBuilder_.build();
        }
        if (teamBlueBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            teamBlue_ = java.util.Collections.unmodifiableList(teamBlue_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.teamBlue_ = teamBlue_;
        } else {
          result.teamBlue_ = teamBlueBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Team) {
          return mergeFrom((io.element.protobuf.SimpleProto.Team)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Team other) {
        if (other == io.element.protobuf.SimpleProto.Team.getDefaultInstance()) return this;
        if (teamRedBuilder_ == null) {
          if (!other.teamRed_.isEmpty()) {
            if (teamRed_.isEmpty()) {
              teamRed_ = other.teamRed_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTeamRedIsMutable();
              teamRed_.addAll(other.teamRed_);
            }
            onChanged();
          }
        } else {
          if (!other.teamRed_.isEmpty()) {
            if (teamRedBuilder_.isEmpty()) {
              teamRedBuilder_.dispose();
              teamRedBuilder_ = null;
              teamRed_ = other.teamRed_;
              bitField0_ = (bitField0_ & ~0x00000001);
              teamRedBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTeamRedFieldBuilder() : null;
            } else {
              teamRedBuilder_.addAllMessages(other.teamRed_);
            }
          }
        }
        if (teamBlueBuilder_ == null) {
          if (!other.teamBlue_.isEmpty()) {
            if (teamBlue_.isEmpty()) {
              teamBlue_ = other.teamBlue_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureTeamBlueIsMutable();
              teamBlue_.addAll(other.teamBlue_);
            }
            onChanged();
          }
        } else {
          if (!other.teamBlue_.isEmpty()) {
            if (teamBlueBuilder_.isEmpty()) {
              teamBlueBuilder_.dispose();
              teamBlueBuilder_ = null;
              teamBlue_ = other.teamBlue_;
              bitField0_ = (bitField0_ & ~0x00000002);
              teamBlueBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTeamBlueFieldBuilder() : null;
            } else {
              teamBlueBuilder_.addAllMessages(other.teamBlue_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getTeamRedCount(); i++) {
          if (!getTeamRed(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getTeamBlueCount(); i++) {
          if (!getTeamBlue(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      // repeated .Player team_red = 1;
      private java.util.List<io.element.protobuf.SimpleProto.Player> teamRed_ =
        java.util.Collections.emptyList();
      private void ensureTeamRedIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          teamRed_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Player>(teamRed_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder> teamRedBuilder_;

      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Player> getTeamRedList() {
        if (teamRedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(teamRed_);
        } else {
          return teamRedBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public int getTeamRedCount() {
        if (teamRedBuilder_ == null) {
          return teamRed_.size();
        } else {
          return teamRedBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public io.element.protobuf.SimpleProto.Player getTeamRed(int index) {
        if (teamRedBuilder_ == null) {
          return teamRed_.get(index);
        } else {
          return teamRedBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder setTeamRed(
          int index, io.element.protobuf.SimpleProto.Player value) {
        if (teamRedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamRedIsMutable();
          teamRed_.set(index, value);
          onChanged();
        } else {
          teamRedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder setTeamRed(
          int index, io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamRedBuilder_ == null) {
          ensureTeamRedIsMutable();
          teamRed_.set(index, builderForValue.build());
          onChanged();
        } else {
          teamRedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder addTeamRed(io.element.protobuf.SimpleProto.Player value) {
        if (teamRedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamRedIsMutable();
          teamRed_.add(value);
          onChanged();
        } else {
          teamRedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder addTeamRed(
          int index, io.element.protobuf.SimpleProto.Player value) {
        if (teamRedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamRedIsMutable();
          teamRed_.add(index, value);
          onChanged();
        } else {
          teamRedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder addTeamRed(
          io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamRedBuilder_ == null) {
          ensureTeamRedIsMutable();
          teamRed_.add(builderForValue.build());
          onChanged();
        } else {
          teamRedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder addTeamRed(
          int index, io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamRedBuilder_ == null) {
          ensureTeamRedIsMutable();
          teamRed_.add(index, builderForValue.build());
          onChanged();
        } else {
          teamRedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder addAllTeamRed(
          java.lang.Iterable<? extends io.element.protobuf.SimpleProto.Player> values) {
        if (teamRedBuilder_ == null) {
          ensureTeamRedIsMutable();
          super.addAll(values, teamRed_);
          onChanged();
        } else {
          teamRedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder clearTeamRed() {
        if (teamRedBuilder_ == null) {
          teamRed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          teamRedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public Builder removeTeamRed(int index) {
        if (teamRedBuilder_ == null) {
          ensureTeamRedIsMutable();
          teamRed_.remove(index);
          onChanged();
        } else {
          teamRedBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder getTeamRedBuilder(
          int index) {
        return getTeamRedFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamRedOrBuilder(
          int index) {
        if (teamRedBuilder_ == null) {
          return teamRed_.get(index);  } else {
          return teamRedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
           getTeamRedOrBuilderList() {
        if (teamRedBuilder_ != null) {
          return teamRedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(teamRed_);
        }
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder addTeamRedBuilder() {
        return getTeamRedFieldBuilder().addBuilder(
            io.element.protobuf.SimpleProto.Player.getDefaultInstance());
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder addTeamRedBuilder(
          int index) {
        return getTeamRedFieldBuilder().addBuilder(
            index, io.element.protobuf.SimpleProto.Player.getDefaultInstance());
      }
      /**
       * <code>repeated .Player team_red = 1;</code>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Player.Builder> 
           getTeamRedBuilderList() {
        return getTeamRedFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder> 
          getTeamRedFieldBuilder() {
        if (teamRedBuilder_ == null) {
          teamRedBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder>(
                  teamRed_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          teamRed_ = null;
        }
        return teamRedBuilder_;
      }

      // repeated .Player team_blue = 2;
      private java.util.List<io.element.protobuf.SimpleProto.Player> teamBlue_ =
        java.util.Collections.emptyList();
      private void ensureTeamBlueIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          teamBlue_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Player>(teamBlue_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder> teamBlueBuilder_;

      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Player> getTeamBlueList() {
        if (teamBlueBuilder_ == null) {
          return java.util.Collections.unmodifiableList(teamBlue_);
        } else {
          return teamBlueBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public int getTeamBlueCount() {
        if (teamBlueBuilder_ == null) {
          return teamBlue_.size();
        } else {
          return teamBlueBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Player getTeamBlue(int index) {
        if (teamBlueBuilder_ == null) {
          return teamBlue_.get(index);
        } else {
          return teamBlueBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder setTeamBlue(
          int index, io.element.protobuf.SimpleProto.Player value) {
        if (teamBlueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamBlueIsMutable();
          teamBlue_.set(index, value);
          onChanged();
        } else {
          teamBlueBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder setTeamBlue(
          int index, io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamBlueBuilder_ == null) {
          ensureTeamBlueIsMutable();
          teamBlue_.set(index, builderForValue.build());
          onChanged();
        } else {
          teamBlueBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder addTeamBlue(io.element.protobuf.SimpleProto.Player value) {
        if (teamBlueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamBlueIsMutable();
          teamBlue_.add(value);
          onChanged();
        } else {
          teamBlueBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder addTeamBlue(
          int index, io.element.protobuf.SimpleProto.Player value) {
        if (teamBlueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTeamBlueIsMutable();
          teamBlue_.add(index, value);
          onChanged();
        } else {
          teamBlueBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder addTeamBlue(
          io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamBlueBuilder_ == null) {
          ensureTeamBlueIsMutable();
          teamBlue_.add(builderForValue.build());
          onChanged();
        } else {
          teamBlueBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder addTeamBlue(
          int index, io.element.protobuf.SimpleProto.Player.Builder builderForValue) {
        if (teamBlueBuilder_ == null) {
          ensureTeamBlueIsMutable();
          teamBlue_.add(index, builderForValue.build());
          onChanged();
        } else {
          teamBlueBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder addAllTeamBlue(
          java.lang.Iterable<? extends io.element.protobuf.SimpleProto.Player> values) {
        if (teamBlueBuilder_ == null) {
          ensureTeamBlueIsMutable();
          super.addAll(values, teamBlue_);
          onChanged();
        } else {
          teamBlueBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder clearTeamBlue() {
        if (teamBlueBuilder_ == null) {
          teamBlue_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          teamBlueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public Builder removeTeamBlue(int index) {
        if (teamBlueBuilder_ == null) {
          ensureTeamBlueIsMutable();
          teamBlue_.remove(index);
          onChanged();
        } else {
          teamBlueBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder getTeamBlueBuilder(
          int index) {
        return getTeamBlueFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public io.element.protobuf.SimpleProto.PlayerOrBuilder getTeamBlueOrBuilder(
          int index) {
        if (teamBlueBuilder_ == null) {
          return teamBlue_.get(index);  } else {
          return teamBlueBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public java.util.List<? extends io.element.protobuf.SimpleProto.PlayerOrBuilder> 
           getTeamBlueOrBuilderList() {
        if (teamBlueBuilder_ != null) {
          return teamBlueBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(teamBlue_);
        }
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder addTeamBlueBuilder() {
        return getTeamBlueFieldBuilder().addBuilder(
            io.element.protobuf.SimpleProto.Player.getDefaultInstance());
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Player.Builder addTeamBlueBuilder(
          int index) {
        return getTeamBlueFieldBuilder().addBuilder(
            index, io.element.protobuf.SimpleProto.Player.getDefaultInstance());
      }
      /**
       * <code>repeated .Player team_blue = 2;</code>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Player.Builder> 
           getTeamBlueBuilderList() {
        return getTeamBlueFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder> 
          getTeamBlueFieldBuilder() {
        if (teamBlueBuilder_ == null) {
          teamBlueBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.element.protobuf.SimpleProto.Player, io.element.protobuf.SimpleProto.Player.Builder, io.element.protobuf.SimpleProto.PlayerOrBuilder>(
                  teamBlue_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          teamBlue_ = null;
        }
        return teamBlueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Team)
    }

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

    // @@protoc_insertion_point(class_scope:Team)
  }

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

    // required int64 id = 1;
    /**
     * <code>required int64 id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>required int64 id = 1;</code>
     */
    long getId();

    // required .ROOM_TYPE type = 2;
    /**
     * <code>required .ROOM_TYPE type = 2;</code>
     */
    boolean hasType();
    /**
     * <code>required .ROOM_TYPE type = 2;</code>
     */
    io.element.protobuf.SimpleProto.ROOM_TYPE getType();

    // required string name = 3;
    /**
     * <code>required string name = 3;</code>
     */
    boolean hasName();
    /**
     * <code>required string name = 3;</code>
     */
    java.lang.String getName();
    /**
     * <code>required string name = 3;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // required .Team players = 4;
    /**
     * <code>required .Team players = 4;</code>
     */
    boolean hasPlayers();
    /**
     * <code>required .Team players = 4;</code>
     */
    io.element.protobuf.SimpleProto.Team getPlayers();
    /**
     * <code>required .Team players = 4;</code>
     */
    io.element.protobuf.SimpleProto.TeamOrBuilder getPlayersOrBuilder();

    // optional .Active active = 5;
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    boolean hasActive();
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.Active getActive();
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder();
  }
  /**
   * Protobuf type {@code Room}
   */
  public static final class Room extends
      com.google.protobuf.GeneratedMessage
      implements RoomOrBuilder {
    // Use Room.newBuilder() to construct.
    private Room(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Room(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Room getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Room(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt64();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.ROOM_TYPE value = io.element.protobuf.SimpleProto.ROOM_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                type_ = value;
              }
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              name_ = input.readBytes();
              break;
            }
            case 34: {
              io.element.protobuf.SimpleProto.Team.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = players_.toBuilder();
              }
              players_ = input.readMessage(io.element.protobuf.SimpleProto.Team.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(players_);
                players_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              io.element.protobuf.SimpleProto.Active.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = active_.toBuilder();
              }
              active_ = input.readMessage(io.element.protobuf.SimpleProto.Active.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(active_);
                active_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Room_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Room_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Room.class, io.element.protobuf.SimpleProto.Room.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <code>required int64 id = 1;</code>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 id = 1;</code>
     */
    public long getId() {
      return id_;
    }

    // required .ROOM_TYPE type = 2;
    public static final int TYPE_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.ROOM_TYPE type_;
    /**
     * <code>required .ROOM_TYPE type = 2;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ROOM_TYPE type = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ROOM_TYPE getType() {
      return type_;
    }

    // required string name = 3;
    public static final int NAME_FIELD_NUMBER = 3;
    private java.lang.Object name_;
    /**
     * <code>required string name = 3;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required string name = 3;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string name = 3;</code>
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required .Team players = 4;
    public static final int PLAYERS_FIELD_NUMBER = 4;
    private io.element.protobuf.SimpleProto.Team players_;
    /**
     * <code>required .Team players = 4;</code>
     */
    public boolean hasPlayers() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .Team players = 4;</code>
     */
    public io.element.protobuf.SimpleProto.Team getPlayers() {
      return players_;
    }
    /**
     * <code>required .Team players = 4;</code>
     */
    public io.element.protobuf.SimpleProto.TeamOrBuilder getPlayersOrBuilder() {
      return players_;
    }

    // optional .Active active = 5;
    public static final int ACTIVE_FIELD_NUMBER = 5;
    private io.element.protobuf.SimpleProto.Active active_;
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    public boolean hasActive() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.Active getActive() {
      return active_;
    }
    /**
     * <code>optional .Active active = 5;</code>
     *
     * <pre>
     * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder() {
      return active_;
    }

    private void initFields() {
      id_ = 0L;
      type_ = io.element.protobuf.SimpleProto.ROOM_TYPE.SIMPLE_ROOMTYPE_SIMPLE_2V2;
      name_ = "";
      players_ = io.element.protobuf.SimpleProto.Team.getDefaultInstance();
      active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayers()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPlayers().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasActive()) {
        if (!getActive().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, players_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, active_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, players_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, active_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.Room parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Room parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Room parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Room parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Room prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Room}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.RoomOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Room_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Room_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Room.class, io.element.protobuf.SimpleProto.Room.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Room.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.ROOM_TYPE.SIMPLE_ROOMTYPE_SIMPLE_2V2;
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (playersBuilder_ == null) {
          players_ = io.element.protobuf.SimpleProto.Team.getDefaultInstance();
        } else {
          playersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (activeBuilder_ == null) {
          active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Room_descriptor;
      }

      public io.element.protobuf.SimpleProto.Room getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Room.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Room build() {
        io.element.protobuf.SimpleProto.Room result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Room buildPartial() {
        io.element.protobuf.SimpleProto.Room result = new io.element.protobuf.SimpleProto.Room(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (playersBuilder_ == null) {
          result.players_ = players_;
        } else {
          result.players_ = playersBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (activeBuilder_ == null) {
          result.active_ = active_;
        } else {
          result.active_ = activeBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Room) {
          return mergeFrom((io.element.protobuf.SimpleProto.Room)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Room other) {
        if (other == io.element.protobuf.SimpleProto.Room.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000004;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasPlayers()) {
          mergePlayers(other.getPlayers());
        }
        if (other.hasActive()) {
          mergeActive(other.getActive());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasId()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!hasName()) {
          
          return false;
        }
        if (!hasPlayers()) {
          
          return false;
        }
        if (!getPlayers().isInitialized()) {
          
          return false;
        }
        if (hasActive()) {
          if (!getActive().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      // required int64 id = 1;
      private long id_ ;
      /**
       * <code>required int64 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 id = 1;</code>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      // required .ROOM_TYPE type = 2;
      private io.element.protobuf.SimpleProto.ROOM_TYPE type_ = io.element.protobuf.SimpleProto.ROOM_TYPE.SIMPLE_ROOMTYPE_SIMPLE_2V2;
      /**
       * <code>required .ROOM_TYPE type = 2;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ROOM_TYPE type = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ROOM_TYPE getType() {
        return type_;
      }
      /**
       * <code>required .ROOM_TYPE type = 2;</code>
       */
      public Builder setType(io.element.protobuf.SimpleProto.ROOM_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .ROOM_TYPE type = 2;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = io.element.protobuf.SimpleProto.ROOM_TYPE.SIMPLE_ROOMTYPE_SIMPLE_2V2;
        onChanged();
        return this;
      }

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

      // required .Team players = 4;
      private io.element.protobuf.SimpleProto.Team players_ = io.element.protobuf.SimpleProto.Team.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Team, io.element.protobuf.SimpleProto.Team.Builder, io.element.protobuf.SimpleProto.TeamOrBuilder> playersBuilder_;
      /**
       * <code>required .Team players = 4;</code>
       */
      public boolean hasPlayers() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public io.element.protobuf.SimpleProto.Team getPlayers() {
        if (playersBuilder_ == null) {
          return players_;
        } else {
          return playersBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public Builder setPlayers(io.element.protobuf.SimpleProto.Team value) {
        if (playersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          players_ = value;
          onChanged();
        } else {
          playersBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public Builder setPlayers(
          io.element.protobuf.SimpleProto.Team.Builder builderForValue) {
        if (playersBuilder_ == null) {
          players_ = builderForValue.build();
          onChanged();
        } else {
          playersBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public Builder mergePlayers(io.element.protobuf.SimpleProto.Team value) {
        if (playersBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              players_ != io.element.protobuf.SimpleProto.Team.getDefaultInstance()) {
            players_ =
              io.element.protobuf.SimpleProto.Team.newBuilder(players_).mergeFrom(value).buildPartial();
          } else {
            players_ = value;
          }
          onChanged();
        } else {
          playersBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public Builder clearPlayers() {
        if (playersBuilder_ == null) {
          players_ = io.element.protobuf.SimpleProto.Team.getDefaultInstance();
          onChanged();
        } else {
          playersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public io.element.protobuf.SimpleProto.Team.Builder getPlayersBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getPlayersFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      public io.element.protobuf.SimpleProto.TeamOrBuilder getPlayersOrBuilder() {
        if (playersBuilder_ != null) {
          return playersBuilder_.getMessageOrBuilder();
        } else {
          return players_;
        }
      }
      /**
       * <code>required .Team players = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Team, io.element.protobuf.SimpleProto.Team.Builder, io.element.protobuf.SimpleProto.TeamOrBuilder> 
          getPlayersFieldBuilder() {
        if (playersBuilder_ == null) {
          playersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Team, io.element.protobuf.SimpleProto.Team.Builder, io.element.protobuf.SimpleProto.TeamOrBuilder>(
                  players_,
                  getParentForChildren(),
                  isClean());
          players_ = null;
        }
        return playersBuilder_;
      }

      // optional .Active active = 5;
      private io.element.protobuf.SimpleProto.Active active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder> activeBuilder_;
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public boolean hasActive() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Active getActive() {
        if (activeBuilder_ == null) {
          return active_;
        } else {
          return activeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public Builder setActive(io.element.protobuf.SimpleProto.Active value) {
        if (activeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          active_ = value;
          onChanged();
        } else {
          activeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public Builder setActive(
          io.element.protobuf.SimpleProto.Active.Builder builderForValue) {
        if (activeBuilder_ == null) {
          active_ = builderForValue.build();
          onChanged();
        } else {
          activeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public Builder mergeActive(io.element.protobuf.SimpleProto.Active value) {
        if (activeBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              active_ != io.element.protobuf.SimpleProto.Active.getDefaultInstance()) {
            active_ =
              io.element.protobuf.SimpleProto.Active.newBuilder(active_).mergeFrom(value).buildPartial();
          } else {
            active_ = value;
          }
          onChanged();
        } else {
          activeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public Builder clearActive() {
        if (activeBuilder_ == null) {
          active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
          onChanged();
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Active.Builder getActiveBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getActiveFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder() {
        if (activeBuilder_ != null) {
          return activeBuilder_.getMessageOrBuilder();
        } else {
          return active_;
        }
      }
      /**
       * <code>optional .Active active = 5;</code>
       *
       * <pre>
       * ¿ÉÑ¡  Íæ¼ÒµÄÖ÷½×¶ÏÐÅÏ¢
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder> 
          getActiveFieldBuilder() {
        if (activeBuilder_ == null) {
          activeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder>(
                  active_,
                  getParentForChildren(),
                  isClean());
          active_ = null;
        }
        return activeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Room)
    }

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

    // @@protoc_insertion_point(class_scope:Room)
  }

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

    // required int64 playerid = 1;
    /**
     * <code>required int64 playerid = 1;</code>
     */
    boolean hasPlayerid();
    /**
     * <code>required int64 playerid = 1;</code>
     */
    long getPlayerid();

    // required int64 roomid = 2;
    /**
     * <code>required int64 roomid = 2;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 2;</code>
     */
    long getRoomid();

    // required .PHASE_TYPE phase = 3;
    /**
     * <code>required .PHASE_TYPE phase = 3;</code>
     */
    boolean hasPhase();
    /**
     * <code>required .PHASE_TYPE phase = 3;</code>
     */
    io.element.protobuf.SimpleProto.PHASE_TYPE getPhase();
  }
  /**
   * Protobuf type {@code Active}
   */
  public static final class Active extends
      com.google.protobuf.GeneratedMessage
      implements ActiveOrBuilder {
    // Use Active.newBuilder() to construct.
    private Active(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Active(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Active getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Active(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerid_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              roomid_ = input.readInt64();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.PHASE_TYPE value = io.element.protobuf.SimpleProto.PHASE_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                phase_ = value;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Active_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Active_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Active.class, io.element.protobuf.SimpleProto.Active.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 playerid = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private long playerid_;
    /**
     * <code>required int64 playerid = 1;</code>
     */
    public boolean hasPlayerid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 playerid = 1;</code>
     */
    public long getPlayerid() {
      return playerid_;
    }

    // required int64 roomid = 2;
    public static final int ROOMID_FIELD_NUMBER = 2;
    private long roomid_;
    /**
     * <code>required int64 roomid = 2;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 roomid = 2;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

    // required .PHASE_TYPE phase = 3;
    public static final int PHASE_FIELD_NUMBER = 3;
    private io.element.protobuf.SimpleProto.PHASE_TYPE phase_;
    /**
     * <code>required .PHASE_TYPE phase = 3;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .PHASE_TYPE phase = 3;</code>
     */
    public io.element.protobuf.SimpleProto.PHASE_TYPE getPhase() {
      return phase_;
    }

    private void initFields() {
      playerid_ = 0L;
      roomid_ = 0L;
      phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPlayerid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRoomid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPhase()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, playerid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, roomid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, phase_.getNumber());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, playerid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, roomid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, phase_.getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.Active parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Active parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Active parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Active parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Active prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Active}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.ActiveOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Active_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Active_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Active.class, io.element.protobuf.SimpleProto.Active.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Active.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        playerid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Active_descriptor;
      }

      public io.element.protobuf.SimpleProto.Active getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Active.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Active build() {
        io.element.protobuf.SimpleProto.Active result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Active buildPartial() {
        io.element.protobuf.SimpleProto.Active result = new io.element.protobuf.SimpleProto.Active(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerid_ = playerid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.roomid_ = roomid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.phase_ = phase_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Active) {
          return mergeFrom((io.element.protobuf.SimpleProto.Active)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Active other) {
        if (other == io.element.protobuf.SimpleProto.Active.getDefaultInstance()) return this;
        if (other.hasPlayerid()) {
          setPlayerid(other.getPlayerid());
        }
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        if (other.hasPhase()) {
          setPhase(other.getPhase());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerid()) {
          
          return false;
        }
        if (!hasRoomid()) {
          
          return false;
        }
        if (!hasPhase()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 playerid = 1;
      private long playerid_ ;
      /**
       * <code>required int64 playerid = 1;</code>
       */
      public boolean hasPlayerid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 playerid = 1;</code>
       */
      public long getPlayerid() {
        return playerid_;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       */
      public Builder setPlayerid(long value) {
        bitField0_ |= 0x00000001;
        playerid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       */
      public Builder clearPlayerid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerid_ = 0L;
        onChanged();
        return this;
      }

      // required int64 roomid = 2;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 2;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 roomid = 2;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 2;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000002;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 2;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // required .PHASE_TYPE phase = 3;
      private io.element.protobuf.SimpleProto.PHASE_TYPE phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
      /**
       * <code>required .PHASE_TYPE phase = 3;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .PHASE_TYPE phase = 3;</code>
       */
      public io.element.protobuf.SimpleProto.PHASE_TYPE getPhase() {
        return phase_;
      }
      /**
       * <code>required .PHASE_TYPE phase = 3;</code>
       */
      public Builder setPhase(io.element.protobuf.SimpleProto.PHASE_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PHASE_TYPE phase = 3;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000004);
        phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Active)
    }

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

    // @@protoc_insertion_point(class_scope:Active)
  }

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

    // required int32 value = 1;
    /**
     * <code>required int32 value = 1;</code>
     */
    boolean hasValue();
    /**
     * <code>required int32 value = 1;</code>
     */
    int getValue();

    // optional int32 prevalue = 2;
    /**
     * <code>optional int32 prevalue = 2;</code>
     */
    boolean hasPrevalue();
    /**
     * <code>optional int32 prevalue = 2;</code>
     */
    int getPrevalue();
  }
  /**
   * Protobuf type {@code OperateValue}
   */
  public static final class OperateValue extends
      com.google.protobuf.GeneratedMessage
      implements OperateValueOrBuilder {
    // Use OperateValue.newBuilder() to construct.
    private OperateValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private OperateValue(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public OperateValue getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_OperateValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.OperateValue.class, io.element.protobuf.SimpleProto.OperateValue.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 value = 1;
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <code>required int32 value = 1;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 value = 1;</code>
     */
    public int getValue() {
      return value_;
    }

    // optional int32 prevalue = 2;
    public static final int PREVALUE_FIELD_NUMBER = 2;
    private int prevalue_;
    /**
     * <code>optional int32 prevalue = 2;</code>
     */
    public boolean hasPrevalue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int32 prevalue = 2;</code>
     */
    public int getPrevalue() {
      return prevalue_;
    }

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

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

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

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

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

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

    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.OperateValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.OperateValue prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code OperateValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.OperateValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_OperateValue_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_OperateValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.OperateValue.class, io.element.protobuf.SimpleProto.OperateValue.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.OperateValue.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_OperateValue_descriptor;
      }

      public io.element.protobuf.SimpleProto.OperateValue getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.OperateValue.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.OperateValue build() {
        io.element.protobuf.SimpleProto.OperateValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.OperateValue buildPartial() {
        io.element.protobuf.SimpleProto.OperateValue result = new io.element.protobuf.SimpleProto.OperateValue(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.prevalue_ = prevalue_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.OperateValue) {
          return mergeFrom((io.element.protobuf.SimpleProto.OperateValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.OperateValue other) {
        if (other == io.element.protobuf.SimpleProto.OperateValue.getDefaultInstance()) return this;
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasPrevalue()) {
          setPrevalue(other.getPrevalue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required int32 value = 1;
      private int value_ ;
      /**
       * <code>required int32 value = 1;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 value = 1;</code>
       */
      public int getValue() {
        return value_;
      }
      /**
       * <code>required int32 value = 1;</code>
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000001;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 value = 1;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        onChanged();
        return this;
      }

      // optional int32 prevalue = 2;
      private int prevalue_ ;
      /**
       * <code>optional int32 prevalue = 2;</code>
       */
      public boolean hasPrevalue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int32 prevalue = 2;</code>
       */
      public int getPrevalue() {
        return prevalue_;
      }
      /**
       * <code>optional int32 prevalue = 2;</code>
       */
      public Builder setPrevalue(int value) {
        bitField0_ |= 0x00000002;
        prevalue_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 prevalue = 2;</code>
       */
      public Builder clearPrevalue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        prevalue_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:OperateValue)
    }

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

    // @@protoc_insertion_point(class_scope:OperateValue)
  }

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

    // required int64 playerid = 1;
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * Õë¶ÔµÄÍæ¼Ò id 
     * </pre>
     */
    boolean hasPlayerid();
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * Õë¶ÔµÄÍæ¼Ò id 
     * </pre>
     */
    long getPlayerid();

    // required int32 type = 2;
    /**
     * <code>required int32 type = 2;</code>
     *
     * <pre>
     * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
     * </pre>
     */
    boolean hasType();
    /**
     * <code>required int32 type = 2;</code>
     *
     * <pre>
     * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
     * </pre>
     */
    int getType();

    // repeated .OperateValue values = 3;
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    java.util.List<io.element.protobuf.SimpleProto.OperateValue> 
        getValuesList();
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    io.element.protobuf.SimpleProto.OperateValue getValues(int index);
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    int getValuesCount();
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    java.util.List<? extends io.element.protobuf.SimpleProto.OperateValueOrBuilder> 
        getValuesOrBuilderList();
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    io.element.protobuf.SimpleProto.OperateValueOrBuilder getValuesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code Reactor}
   *
   * <pre>
   * Ò»¸öÌØ¶¨µÄactor Õë¶Ô¶à¸övalue
   * </pre>
   */
  public static final class Reactor extends
      com.google.protobuf.GeneratedMessage
      implements ReactorOrBuilder {
    // Use Reactor.newBuilder() to construct.
    private Reactor(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Reactor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Reactor getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Reactor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerid_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              type_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                values_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.OperateValue>();
                mutable_bitField0_ |= 0x00000004;
              }
              values_.add(input.readMessage(io.element.protobuf.SimpleProto.OperateValue.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = java.util.Collections.unmodifiableList(values_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Reactor_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Reactor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Reactor.class, io.element.protobuf.SimpleProto.Reactor.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 playerid = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private long playerid_;
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * Õë¶ÔµÄÍæ¼Ò id 
     * </pre>
     */
    public boolean hasPlayerid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * Õë¶ÔµÄÍæ¼Ò id 
     * </pre>
     */
    public long getPlayerid() {
      return playerid_;
    }

    // required int32 type = 2;
    public static final int TYPE_FIELD_NUMBER = 2;
    private int type_;
    /**
     * <code>required int32 type = 2;</code>
     *
     * <pre>
     * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
     * </pre>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 type = 2;</code>
     *
     * <pre>
     * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
     * </pre>
     */
    public int getType() {
      return type_;
    }

    // repeated .OperateValue values = 3;
    public static final int VALUES_FIELD_NUMBER = 3;
    private java.util.List<io.element.protobuf.SimpleProto.OperateValue> values_;
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    public java.util.List<io.element.protobuf.SimpleProto.OperateValue> getValuesList() {
      return values_;
    }
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    public java.util.List<? extends io.element.protobuf.SimpleProto.OperateValueOrBuilder> 
        getValuesOrBuilderList() {
      return values_;
    }
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    public io.element.protobuf.SimpleProto.OperateValue getValues(int index) {
      return values_.get(index);
    }
    /**
     * <code>repeated .OperateValue values = 3;</code>
     *
     * <pre>
     * ´¦ÀíºóµÄÊý¾Ý	
     * </pre>
     */
    public io.element.protobuf.SimpleProto.OperateValueOrBuilder getValuesOrBuilder(
        int index) {
      return values_.get(index);
    }

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

      if (!hasPlayerid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getValuesCount(); i++) {
        if (!getValues(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, playerid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, type_);
      }
      for (int i = 0; i < values_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, values_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Reactor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Reactor prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Reactor}
     *
     * <pre>
     * Ò»¸öÌØ¶¨µÄactor Õë¶Ô¶à¸övalue
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.ReactorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Reactor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Reactor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Reactor.class, io.element.protobuf.SimpleProto.Reactor.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Reactor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        playerid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          valuesBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Reactor_descriptor;
      }

      public io.element.protobuf.SimpleProto.Reactor getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Reactor.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Reactor build() {
        io.element.protobuf.SimpleProto.Reactor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Reactor buildPartial() {
        io.element.protobuf.SimpleProto.Reactor result = new io.element.protobuf.SimpleProto.Reactor(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerid_ = playerid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (valuesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            values_ = java.util.Collections.unmodifiableList(values_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.values_ = values_;
        } else {
          result.values_ = valuesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Reactor) {
          return mergeFrom((io.element.protobuf.SimpleProto.Reactor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Reactor other) {
        if (other == io.element.protobuf.SimpleProto.Reactor.getDefaultInstance()) return this;
        if (other.hasPlayerid()) {
          setPlayerid(other.getPlayerid());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (valuesBuilder_ == null) {
          if (!other.values_.isEmpty()) {
            if (values_.isEmpty()) {
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureValuesIsMutable();
              values_.addAll(other.values_);
            }
            onChanged();
          }
        } else {
          if (!other.values_.isEmpty()) {
            if (valuesBuilder_.isEmpty()) {
              valuesBuilder_.dispose();
              valuesBuilder_ = null;
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000004);
              valuesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getValuesFieldBuilder() : null;
            } else {
              valuesBuilder_.addAllMessages(other.values_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerid()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        for (int i = 0; i < getValuesCount(); i++) {
          if (!getValues(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      // required int64 playerid = 1;
      private long playerid_ ;
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * Õë¶ÔµÄÍæ¼Ò id 
       * </pre>
       */
      public boolean hasPlayerid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * Õë¶ÔµÄÍæ¼Ò id 
       * </pre>
       */
      public long getPlayerid() {
        return playerid_;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * Õë¶ÔµÄÍæ¼Ò id 
       * </pre>
       */
      public Builder setPlayerid(long value) {
        bitField0_ |= 0x00000001;
        playerid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * Õë¶ÔµÄÍæ¼Ò id 
       * </pre>
       */
      public Builder clearPlayerid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerid_ = 0L;
        onChanged();
        return this;
      }

      // required int32 type = 2;
      private int type_ ;
      /**
       * <code>required int32 type = 2;</code>
       *
       * <pre>
       * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
       * </pre>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 type = 2;</code>
       *
       * <pre>
       * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
       * </pre>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required int32 type = 2;</code>
       *
       * <pre>
       * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
       * </pre>
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 type = 2;</code>
       *
       * <pre>
       * ´¦Àí·½Ê½ INTERACTIVE_TYPE in card.java
       * </pre>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 0;
        onChanged();
        return this;
      }

      // repeated .OperateValue values = 3;
      private java.util.List<io.element.protobuf.SimpleProto.OperateValue> values_ =
        java.util.Collections.emptyList();
      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.OperateValue>(values_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.OperateValue, io.element.protobuf.SimpleProto.OperateValue.Builder, io.element.protobuf.SimpleProto.OperateValueOrBuilder> valuesBuilder_;

      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public java.util.List<io.element.protobuf.SimpleProto.OperateValue> getValuesList() {
        if (valuesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(values_);
        } else {
          return valuesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public int getValuesCount() {
        if (valuesBuilder_ == null) {
          return values_.size();
        } else {
          return valuesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public io.element.protobuf.SimpleProto.OperateValue getValues(int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);
        } else {
          return valuesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder setValues(
          int index, io.element.protobuf.SimpleProto.OperateValue value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.set(index, value);
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder setValues(
          int index, io.element.protobuf.SimpleProto.OperateValue.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.set(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder addValues(io.element.protobuf.SimpleProto.OperateValue value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder addValues(
          int index, io.element.protobuf.SimpleProto.OperateValue value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(index, value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder addValues(
          io.element.protobuf.SimpleProto.OperateValue.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder addValues(
          int index, io.element.protobuf.SimpleProto.OperateValue.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends io.element.protobuf.SimpleProto.OperateValue> values) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          super.addAll(values, values_);
          onChanged();
        } else {
          valuesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder clearValues() {
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          valuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public Builder removeValues(int index) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.remove(index);
          onChanged();
        } else {
          valuesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public io.element.protobuf.SimpleProto.OperateValue.Builder getValuesBuilder(
          int index) {
        return getValuesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public io.element.protobuf.SimpleProto.OperateValueOrBuilder getValuesOrBuilder(
          int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);  } else {
          return valuesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public java.util.List<? extends io.element.protobuf.SimpleProto.OperateValueOrBuilder> 
           getValuesOrBuilderList() {
        if (valuesBuilder_ != null) {
          return valuesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(values_);
        }
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public io.element.protobuf.SimpleProto.OperateValue.Builder addValuesBuilder() {
        return getValuesFieldBuilder().addBuilder(
            io.element.protobuf.SimpleProto.OperateValue.getDefaultInstance());
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public io.element.protobuf.SimpleProto.OperateValue.Builder addValuesBuilder(
          int index) {
        return getValuesFieldBuilder().addBuilder(
            index, io.element.protobuf.SimpleProto.OperateValue.getDefaultInstance());
      }
      /**
       * <code>repeated .OperateValue values = 3;</code>
       *
       * <pre>
       * ´¦ÀíºóµÄÊý¾Ý	
       * </pre>
       */
      public java.util.List<io.element.protobuf.SimpleProto.OperateValue.Builder> 
           getValuesBuilderList() {
        return getValuesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.OperateValue, io.element.protobuf.SimpleProto.OperateValue.Builder, io.element.protobuf.SimpleProto.OperateValueOrBuilder> 
          getValuesFieldBuilder() {
        if (valuesBuilder_ == null) {
          valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.element.protobuf.SimpleProto.OperateValue, io.element.protobuf.SimpleProto.OperateValue.Builder, io.element.protobuf.SimpleProto.OperateValueOrBuilder>(
                  values_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        return valuesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Reactor)
    }

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

    // @@protoc_insertion_point(class_scope:Reactor)
  }

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

    // required .Reactor actor = 1;
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    boolean hasActor();
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    io.element.protobuf.SimpleProto.Reactor getActor();
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder();

    // required .REACTOR_TYPE type = 2;
    /**
     * <code>required .REACTOR_TYPE type = 2;</code>
     *
     * <pre>
     * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
     * </pre>
     */
    boolean hasType();
    /**
     * <code>required .REACTOR_TYPE type = 2;</code>
     *
     * <pre>
     * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
     * </pre>
     */
    io.element.protobuf.SimpleProto.REACTOR_TYPE getType();

    // optional int64 id = 3;
    /**
     * <code>optional int64 id = 3;</code>
     *
     * <pre>
     * À´Ô´µÄid
     * </pre>
     */
    boolean hasId();
    /**
     * <code>optional int64 id = 3;</code>
     *
     * <pre>
     * À´Ô´µÄid
     * </pre>
     */
    long getId();

    // optional int64 hostid = 4;
    /**
     * <code>optional int64 hostid = 4;</code>
     *
     * <pre>
     * À´Ô´Íæ¼ÒµÄid
     * </pre>
     */
    boolean hasHostid();
    /**
     * <code>optional int64 hostid = 4;</code>
     *
     * <pre>
     * À´Ô´Íæ¼ÒµÄid
     * </pre>
     */
    long getHostid();
  }
  /**
   * Protobuf type {@code ReactorInfo}
   *
   * <pre>
   * Õâ¸ö²Ù×÷info Õë¶ÔÒ»¸öÌØ¶¨actor 
   * ¼ÙÈçÓÐÕë¶Ô¶à¸öÍæ¼ÒµÄ²Ù×÷
   * ÎÒÃÇ»á´´½¨¶à¸ö ReactorInfo,
   * Ã¿¸öreactorinfoÕë¶ÔÒ»¸öÈËµÄ²Ù×÷
   * </pre>
   */
  public static final class ReactorInfo extends
      com.google.protobuf.GeneratedMessage
      implements ReactorInfoOrBuilder {
    // Use ReactorInfo.newBuilder() to construct.
    private ReactorInfo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReactorInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ReactorInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ReactorInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.element.protobuf.SimpleProto.Reactor.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = actor_.toBuilder();
              }
              actor_ = input.readMessage(io.element.protobuf.SimpleProto.Reactor.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(actor_);
                actor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.REACTOR_TYPE value = io.element.protobuf.SimpleProto.REACTOR_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                type_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              id_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              hostid_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_ReactorInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_ReactorInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.ReactorInfo.class, io.element.protobuf.SimpleProto.ReactorInfo.Builder.class);
    }

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

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

    private int bitField0_;
    // required .Reactor actor = 1;
    public static final int ACTOR_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.Reactor actor_;
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    public boolean hasActor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    public io.element.protobuf.SimpleProto.Reactor getActor() {
      return actor_;
    }
    /**
     * <code>required .Reactor actor = 1;</code>
     *
     * <pre>
     * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder() {
      return actor_;
    }

    // required .REACTOR_TYPE type = 2;
    public static final int TYPE_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.REACTOR_TYPE type_;
    /**
     * <code>required .REACTOR_TYPE type = 2;</code>
     *
     * <pre>
     * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
     * </pre>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .REACTOR_TYPE type = 2;</code>
     *
     * <pre>
     * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
     * </pre>
     */
    public io.element.protobuf.SimpleProto.REACTOR_TYPE getType() {
      return type_;
    }

    // optional int64 id = 3;
    public static final int ID_FIELD_NUMBER = 3;
    private long id_;
    /**
     * <code>optional int64 id = 3;</code>
     *
     * <pre>
     * À´Ô´µÄid
     * </pre>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int64 id = 3;</code>
     *
     * <pre>
     * À´Ô´µÄid
     * </pre>
     */
    public long getId() {
      return id_;
    }

    // optional int64 hostid = 4;
    public static final int HOSTID_FIELD_NUMBER = 4;
    private long hostid_;
    /**
     * <code>optional int64 hostid = 4;</code>
     *
     * <pre>
     * À´Ô´Íæ¼ÒµÄid
     * </pre>
     */
    public boolean hasHostid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int64 hostid = 4;</code>
     *
     * <pre>
     * À´Ô´Íæ¼ÒµÄid
     * </pre>
     */
    public long getHostid() {
      return hostid_;
    }

    private void initFields() {
      actor_ = io.element.protobuf.SimpleProto.Reactor.getDefaultInstance();
      type_ = io.element.protobuf.SimpleProto.REACTOR_TYPE.REACTOR_NONE;
      id_ = 0L;
      hostid_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasActor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getActor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, actor_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, id_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, hostid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, actor_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, id_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, hostid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.ReactorInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.ReactorInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ReactorInfo}
     *
     * <pre>
     * Õâ¸ö²Ù×÷info Õë¶ÔÒ»¸öÌØ¶¨actor 
     * ¼ÙÈçÓÐÕë¶Ô¶à¸öÍæ¼ÒµÄ²Ù×÷
     * ÎÒÃÇ»á´´½¨¶à¸ö ReactorInfo,
     * Ã¿¸öreactorinfoÕë¶ÔÒ»¸öÈËµÄ²Ù×÷
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.ReactorInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_ReactorInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_ReactorInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.ReactorInfo.class, io.element.protobuf.SimpleProto.ReactorInfo.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.ReactorInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.Reactor.getDefaultInstance();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.REACTOR_TYPE.REACTOR_NONE;
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        hostid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_ReactorInfo_descriptor;
      }

      public io.element.protobuf.SimpleProto.ReactorInfo getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.ReactorInfo build() {
        io.element.protobuf.SimpleProto.ReactorInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.ReactorInfo buildPartial() {
        io.element.protobuf.SimpleProto.ReactorInfo result = new io.element.protobuf.SimpleProto.ReactorInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (actorBuilder_ == null) {
          result.actor_ = actor_;
        } else {
          result.actor_ = actorBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.hostid_ = hostid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.ReactorInfo) {
          return mergeFrom((io.element.protobuf.SimpleProto.ReactorInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.ReactorInfo other) {
        if (other == io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance()) return this;
        if (other.hasActor()) {
          mergeActor(other.getActor());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasHostid()) {
          setHostid(other.getHostid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasActor()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!getActor().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required .Reactor actor = 1;
      private io.element.protobuf.SimpleProto.Reactor actor_ = io.element.protobuf.SimpleProto.Reactor.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder> actorBuilder_;
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public boolean hasActor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor getActor() {
        if (actorBuilder_ == null) {
          return actor_;
        } else {
          return actorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public Builder setActor(io.element.protobuf.SimpleProto.Reactor value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actor_ = value;
          onChanged();
        } else {
          actorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public Builder setActor(
          io.element.protobuf.SimpleProto.Reactor.Builder builderForValue) {
        if (actorBuilder_ == null) {
          actor_ = builderForValue.build();
          onChanged();
        } else {
          actorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public Builder mergeActor(io.element.protobuf.SimpleProto.Reactor value) {
        if (actorBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              actor_ != io.element.protobuf.SimpleProto.Reactor.getDefaultInstance()) {
            actor_ =
              io.element.protobuf.SimpleProto.Reactor.newBuilder(actor_).mergeFrom(value).buildPartial();
          } else {
            actor_ = value;
          }
          onChanged();
        } else {
          actorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public Builder clearActor() {
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.Reactor.getDefaultInstance();
          onChanged();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor.Builder getActorBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getActorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder() {
        if (actorBuilder_ != null) {
          return actorBuilder_.getMessageOrBuilder();
        } else {
          return actor_;
        }
      }
      /**
       * <code>required .Reactor actor = 1;</code>
       *
       * <pre>
       * ²Ù×÷µÄ¾ßÌåÄÚÈÝ
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder> 
          getActorFieldBuilder() {
        if (actorBuilder_ == null) {
          actorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder>(
                  actor_,
                  getParentForChildren(),
                  isClean());
          actor_ = null;
        }
        return actorBuilder_;
      }

      // required .REACTOR_TYPE type = 2;
      private io.element.protobuf.SimpleProto.REACTOR_TYPE type_ = io.element.protobuf.SimpleProto.REACTOR_TYPE.REACTOR_NONE;
      /**
       * <code>required .REACTOR_TYPE type = 2;</code>
       *
       * <pre>
       * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
       * </pre>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .REACTOR_TYPE type = 2;</code>
       *
       * <pre>
       * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
       * </pre>
       */
      public io.element.protobuf.SimpleProto.REACTOR_TYPE getType() {
        return type_;
      }
      /**
       * <code>required .REACTOR_TYPE type = 2;</code>
       *
       * <pre>
       * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
       * </pre>
       */
      public Builder setType(io.element.protobuf.SimpleProto.REACTOR_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .REACTOR_TYPE type = 2;</code>
       *
       * <pre>
       * ´Ë²Ù×÷µÄÀ´Ô´ÀàÐÍ
       * </pre>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = io.element.protobuf.SimpleProto.REACTOR_TYPE.REACTOR_NONE;
        onChanged();
        return this;
      }

      // optional int64 id = 3;
      private long id_ ;
      /**
       * <code>optional int64 id = 3;</code>
       *
       * <pre>
       * À´Ô´µÄid
       * </pre>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 id = 3;</code>
       *
       * <pre>
       * À´Ô´µÄid
       * </pre>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>optional int64 id = 3;</code>
       *
       * <pre>
       * À´Ô´µÄid
       * </pre>
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000004;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id = 3;</code>
       *
       * <pre>
       * À´Ô´µÄid
       * </pre>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        id_ = 0L;
        onChanged();
        return this;
      }

      // optional int64 hostid = 4;
      private long hostid_ ;
      /**
       * <code>optional int64 hostid = 4;</code>
       *
       * <pre>
       * À´Ô´Íæ¼ÒµÄid
       * </pre>
       */
      public boolean hasHostid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int64 hostid = 4;</code>
       *
       * <pre>
       * À´Ô´Íæ¼ÒµÄid
       * </pre>
       */
      public long getHostid() {
        return hostid_;
      }
      /**
       * <code>optional int64 hostid = 4;</code>
       *
       * <pre>
       * À´Ô´Íæ¼ÒµÄid
       * </pre>
       */
      public Builder setHostid(long value) {
        bitField0_ |= 0x00000008;
        hostid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 hostid = 4;</code>
       *
       * <pre>
       * À´Ô´Íæ¼ÒµÄid
       * </pre>
       */
      public Builder clearHostid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        hostid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ReactorInfo)
    }

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

    // @@protoc_insertion_point(class_scope:ReactorInfo)
  }

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

    // required int32 cardid = 1;
    /**
     * <code>required int32 cardid = 1;</code>
     *
     * <pre>
     * card µÄÎ¨Ò»id
     * </pre>
     */
    boolean hasCardid();
    /**
     * <code>required int32 cardid = 1;</code>
     *
     * <pre>
     * card µÄÎ¨Ò»id
     * </pre>
     */
    int getCardid();

    // required int64 hostid = 2;
    /**
     * <code>required int64 hostid = 2;</code>
     *
     * <pre>
     * card Ë­´ò³öµÄ
     * </pre>
     */
    boolean hasHostid();
    /**
     * <code>required int64 hostid = 2;</code>
     *
     * <pre>
     * card Ë­´ò³öµÄ
     * </pre>
     */
    long getHostid();

    // optional .ReactorInfo response = 3;
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    boolean hasResponse();
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    io.element.protobuf.SimpleProto.ReactorInfo getResponse();
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getResponseOrBuilder();

    // repeated .Reactor actor = 4;
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    java.util.List<io.element.protobuf.SimpleProto.Reactor> 
        getActorList();
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    io.element.protobuf.SimpleProto.Reactor getActor(int index);
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    int getActorCount();
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    java.util.List<? extends io.element.protobuf.SimpleProto.ReactorOrBuilder> 
        getActorOrBuilderList();
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code Card}
   *
   * <pre>
   * Ò»¸öcard ¿ÉÄÜ»ásend ¶à´ÎcardµÄÐÅÏ¢  ³ÐÔØ¶à¸ö²»Í¬µÄactor
   * </pre>
   */
  public static final class Card extends
      com.google.protobuf.GeneratedMessage
      implements CardOrBuilder {
    // Use Card.newBuilder() to construct.
    private Card(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Card(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Card getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Card(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              cardid_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              hostid_ = input.readInt64();
              break;
            }
            case 26: {
              io.element.protobuf.SimpleProto.ReactorInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = response_.toBuilder();
              }
              response_ = input.readMessage(io.element.protobuf.SimpleProto.ReactorInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(response_);
                response_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                actor_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Reactor>();
                mutable_bitField0_ |= 0x00000008;
              }
              actor_.add(input.readMessage(io.element.protobuf.SimpleProto.Reactor.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          actor_ = java.util.Collections.unmodifiableList(actor_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_Card_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_Card_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.Card.class, io.element.protobuf.SimpleProto.Card.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 cardid = 1;
    public static final int CARDID_FIELD_NUMBER = 1;
    private int cardid_;
    /**
     * <code>required int32 cardid = 1;</code>
     *
     * <pre>
     * card µÄÎ¨Ò»id
     * </pre>
     */
    public boolean hasCardid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 cardid = 1;</code>
     *
     * <pre>
     * card µÄÎ¨Ò»id
     * </pre>
     */
    public int getCardid() {
      return cardid_;
    }

    // required int64 hostid = 2;
    public static final int HOSTID_FIELD_NUMBER = 2;
    private long hostid_;
    /**
     * <code>required int64 hostid = 2;</code>
     *
     * <pre>
     * card Ë­´ò³öµÄ
     * </pre>
     */
    public boolean hasHostid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 hostid = 2;</code>
     *
     * <pre>
     * card Ë­´ò³öµÄ
     * </pre>
     */
    public long getHostid() {
      return hostid_;
    }

    // optional .ReactorInfo response = 3;
    public static final int RESPONSE_FIELD_NUMBER = 3;
    private io.element.protobuf.SimpleProto.ReactorInfo response_;
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    public boolean hasResponse() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ReactorInfo getResponse() {
      return response_;
    }
    /**
     * <code>optional .ReactorInfo response = 3;</code>
     *
     * <pre>
     * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getResponseOrBuilder() {
      return response_;
    }

    // repeated .Reactor actor = 4;
    public static final int ACTOR_FIELD_NUMBER = 4;
    private java.util.List<io.element.protobuf.SimpleProto.Reactor> actor_;
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    public java.util.List<io.element.protobuf.SimpleProto.Reactor> getActorList() {
      return actor_;
    }
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    public java.util.List<? extends io.element.protobuf.SimpleProto.ReactorOrBuilder> 
        getActorOrBuilderList() {
      return actor_;
    }
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    public int getActorCount() {
      return actor_.size();
    }
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    public io.element.protobuf.SimpleProto.Reactor getActor(int index) {
      return actor_.get(index);
    }
    /**
     * <code>repeated .Reactor actor = 4;</code>
     *
     * <pre>
     * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder(
        int index) {
      return actor_.get(index);
    }

    private void initFields() {
      cardid_ = 0;
      hostid_ = 0L;
      response_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      actor_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasCardid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHostid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasResponse()) {
        if (!getResponse().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getActorCount(); i++) {
        if (!getActor(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, cardid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, hostid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, response_);
      }
      for (int i = 0; i < actor_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, actor_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.Card parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Card parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Card parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.Card parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.Card prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Card}
     *
     * <pre>
     * Ò»¸öcard ¿ÉÄÜ»ásend ¶à´ÎcardµÄÐÅÏ¢  ³ÐÔØ¶à¸ö²»Í¬µÄactor
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.CardOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_Card_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_Card_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.Card.class, io.element.protobuf.SimpleProto.Card.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.Card.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        cardid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        hostid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (responseBuilder_ == null) {
          response_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
        } else {
          responseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (actorBuilder_ == null) {
          actor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          actorBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_Card_descriptor;
      }

      public io.element.protobuf.SimpleProto.Card getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.Card.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.Card build() {
        io.element.protobuf.SimpleProto.Card result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.Card buildPartial() {
        io.element.protobuf.SimpleProto.Card result = new io.element.protobuf.SimpleProto.Card(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cardid_ = cardid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostid_ = hostid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (responseBuilder_ == null) {
          result.response_ = response_;
        } else {
          result.response_ = responseBuilder_.build();
        }
        if (actorBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            actor_ = java.util.Collections.unmodifiableList(actor_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.actor_ = actor_;
        } else {
          result.actor_ = actorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.Card) {
          return mergeFrom((io.element.protobuf.SimpleProto.Card)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.Card other) {
        if (other == io.element.protobuf.SimpleProto.Card.getDefaultInstance()) return this;
        if (other.hasCardid()) {
          setCardid(other.getCardid());
        }
        if (other.hasHostid()) {
          setHostid(other.getHostid());
        }
        if (other.hasResponse()) {
          mergeResponse(other.getResponse());
        }
        if (actorBuilder_ == null) {
          if (!other.actor_.isEmpty()) {
            if (actor_.isEmpty()) {
              actor_ = other.actor_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureActorIsMutable();
              actor_.addAll(other.actor_);
            }
            onChanged();
          }
        } else {
          if (!other.actor_.isEmpty()) {
            if (actorBuilder_.isEmpty()) {
              actorBuilder_.dispose();
              actorBuilder_ = null;
              actor_ = other.actor_;
              bitField0_ = (bitField0_ & ~0x00000008);
              actorBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getActorFieldBuilder() : null;
            } else {
              actorBuilder_.addAllMessages(other.actor_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCardid()) {
          
          return false;
        }
        if (!hasHostid()) {
          
          return false;
        }
        if (hasResponse()) {
          if (!getResponse().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getActorCount(); i++) {
          if (!getActor(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      // required int32 cardid = 1;
      private int cardid_ ;
      /**
       * <code>required int32 cardid = 1;</code>
       *
       * <pre>
       * card µÄÎ¨Ò»id
       * </pre>
       */
      public boolean hasCardid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 cardid = 1;</code>
       *
       * <pre>
       * card µÄÎ¨Ò»id
       * </pre>
       */
      public int getCardid() {
        return cardid_;
      }
      /**
       * <code>required int32 cardid = 1;</code>
       *
       * <pre>
       * card µÄÎ¨Ò»id
       * </pre>
       */
      public Builder setCardid(int value) {
        bitField0_ |= 0x00000001;
        cardid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 cardid = 1;</code>
       *
       * <pre>
       * card µÄÎ¨Ò»id
       * </pre>
       */
      public Builder clearCardid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cardid_ = 0;
        onChanged();
        return this;
      }

      // required int64 hostid = 2;
      private long hostid_ ;
      /**
       * <code>required int64 hostid = 2;</code>
       *
       * <pre>
       * card Ë­´ò³öµÄ
       * </pre>
       */
      public boolean hasHostid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 hostid = 2;</code>
       *
       * <pre>
       * card Ë­´ò³öµÄ
       * </pre>
       */
      public long getHostid() {
        return hostid_;
      }
      /**
       * <code>required int64 hostid = 2;</code>
       *
       * <pre>
       * card Ë­´ò³öµÄ
       * </pre>
       */
      public Builder setHostid(long value) {
        bitField0_ |= 0x00000002;
        hostid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 hostid = 2;</code>
       *
       * <pre>
       * card Ë­´ò³öµÄ
       * </pre>
       */
      public Builder clearHostid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostid_ = 0L;
        onChanged();
        return this;
      }

      // optional .ReactorInfo response = 3;
      private io.element.protobuf.SimpleProto.ReactorInfo response_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> responseBuilder_;
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo getResponse() {
        if (responseBuilder_ == null) {
          return response_;
        } else {
          return responseBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public Builder setResponse(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (responseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          responseBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public Builder setResponse(
          io.element.protobuf.SimpleProto.ReactorInfo.Builder builderForValue) {
        if (responseBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          responseBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public Builder mergeResponse(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (responseBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              response_ != io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance()) {
            response_ =
              io.element.protobuf.SimpleProto.ReactorInfo.newBuilder(response_).mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          responseBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public Builder clearResponse() {
        if (responseBuilder_ == null) {
          response_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
          onChanged();
        } else {
          responseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo.Builder getResponseBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResponseFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getResponseOrBuilder() {
        if (responseBuilder_ != null) {
          return responseBuilder_.getMessageOrBuilder();
        } else {
          return response_;
        }
      }
      /**
       * <code>optional .ReactorInfo response = 3;</code>
       *
       * <pre>
       * card ÊÇ·´Ó¦ÄÄ¸ö²Ù×÷
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> 
          getResponseFieldBuilder() {
        if (responseBuilder_ == null) {
          responseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder>(
                  response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        return responseBuilder_;
      }

      // repeated .Reactor actor = 4;
      private java.util.List<io.element.protobuf.SimpleProto.Reactor> actor_ =
        java.util.Collections.emptyList();
      private void ensureActorIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          actor_ = new java.util.ArrayList<io.element.protobuf.SimpleProto.Reactor>(actor_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder> actorBuilder_;

      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Reactor> getActorList() {
        if (actorBuilder_ == null) {
          return java.util.Collections.unmodifiableList(actor_);
        } else {
          return actorBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public int getActorCount() {
        if (actorBuilder_ == null) {
          return actor_.size();
        } else {
          return actorBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor getActor(int index) {
        if (actorBuilder_ == null) {
          return actor_.get(index);
        } else {
          return actorBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder setActor(
          int index, io.element.protobuf.SimpleProto.Reactor value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActorIsMutable();
          actor_.set(index, value);
          onChanged();
        } else {
          actorBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder setActor(
          int index, io.element.protobuf.SimpleProto.Reactor.Builder builderForValue) {
        if (actorBuilder_ == null) {
          ensureActorIsMutable();
          actor_.set(index, builderForValue.build());
          onChanged();
        } else {
          actorBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder addActor(io.element.protobuf.SimpleProto.Reactor value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActorIsMutable();
          actor_.add(value);
          onChanged();
        } else {
          actorBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder addActor(
          int index, io.element.protobuf.SimpleProto.Reactor value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActorIsMutable();
          actor_.add(index, value);
          onChanged();
        } else {
          actorBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder addActor(
          io.element.protobuf.SimpleProto.Reactor.Builder builderForValue) {
        if (actorBuilder_ == null) {
          ensureActorIsMutable();
          actor_.add(builderForValue.build());
          onChanged();
        } else {
          actorBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder addActor(
          int index, io.element.protobuf.SimpleProto.Reactor.Builder builderForValue) {
        if (actorBuilder_ == null) {
          ensureActorIsMutable();
          actor_.add(index, builderForValue.build());
          onChanged();
        } else {
          actorBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder addAllActor(
          java.lang.Iterable<? extends io.element.protobuf.SimpleProto.Reactor> values) {
        if (actorBuilder_ == null) {
          ensureActorIsMutable();
          super.addAll(values, actor_);
          onChanged();
        } else {
          actorBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder clearActor() {
        if (actorBuilder_ == null) {
          actor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          actorBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public Builder removeActor(int index) {
        if (actorBuilder_ == null) {
          ensureActorIsMutable();
          actor_.remove(index);
          onChanged();
        } else {
          actorBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor.Builder getActorBuilder(
          int index) {
        return getActorFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ReactorOrBuilder getActorOrBuilder(
          int index) {
        if (actorBuilder_ == null) {
          return actor_.get(index);  } else {
          return actorBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public java.util.List<? extends io.element.protobuf.SimpleProto.ReactorOrBuilder> 
           getActorOrBuilderList() {
        if (actorBuilder_ != null) {
          return actorBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(actor_);
        }
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor.Builder addActorBuilder() {
        return getActorFieldBuilder().addBuilder(
            io.element.protobuf.SimpleProto.Reactor.getDefaultInstance());
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Reactor.Builder addActorBuilder(
          int index) {
        return getActorFieldBuilder().addBuilder(
            index, io.element.protobuf.SimpleProto.Reactor.getDefaultInstance());
      }
      /**
       * <code>repeated .Reactor actor = 4;</code>
       *
       * <pre>
       * card Ôì³ÉµÄÄ³¼¸¸öÓ°Ïì  ·ÅÔÚÒ»ÆðÒâÎ¶×ÅÍ¬Ê±´¦Àí
       * </pre>
       */
      public java.util.List<io.element.protobuf.SimpleProto.Reactor.Builder> 
           getActorBuilderList() {
        return getActorFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder> 
          getActorFieldBuilder() {
        if (actorBuilder_ == null) {
          actorBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.element.protobuf.SimpleProto.Reactor, io.element.protobuf.SimpleProto.Reactor.Builder, io.element.protobuf.SimpleProto.ReactorOrBuilder>(
                  actor_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          actor_ = null;
        }
        return actorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Card)
    }

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

    // @@protoc_insertion_point(class_scope:Card)
  }

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

    // required .Active active = 1;
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    boolean hasActive();
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.Active getActive();
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder();

    // required int32 last = 2;
    /**
     * <code>required int32 last = 2;</code>
     *
     * <pre>
     * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
     * </pre>
     */
    boolean hasLast();
    /**
     * <code>required int32 last = 2;</code>
     *
     * <pre>
     * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
     * </pre>
     */
    int getLast();

    // optional int32 proposer = 3;
    /**
     * <code>optional int32 proposer = 3;</code>
     *
     * <pre>
     * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
     * </pre>
     */
    boolean hasProposer();
    /**
     * <code>optional int32 proposer = 3;</code>
     *
     * <pre>
     * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
     * </pre>
     */
    int getProposer();

    // optional .Card card = 4;
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    boolean hasCard();
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    io.element.protobuf.SimpleProto.Card getCard();
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    io.element.protobuf.SimpleProto.CardOrBuilder getCardOrBuilder();
  }
  /**
   * Protobuf type {@code PhaseInfo}
   */
  public static final class PhaseInfo extends
      com.google.protobuf.GeneratedMessage
      implements PhaseInfoOrBuilder {
    // Use PhaseInfo.newBuilder() to construct.
    private PhaseInfo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PhaseInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PhaseInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PhaseInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.element.protobuf.SimpleProto.Active.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = active_.toBuilder();
              }
              active_ = input.readMessage(io.element.protobuf.SimpleProto.Active.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(active_);
                active_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              last_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              proposer_ = input.readInt32();
              break;
            }
            case 34: {
              io.element.protobuf.SimpleProto.Card.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = card_.toBuilder();
              }
              card_ = input.readMessage(io.element.protobuf.SimpleProto.Card.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(card_);
                card_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_PhaseInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_PhaseInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.PhaseInfo.class, io.element.protobuf.SimpleProto.PhaseInfo.Builder.class);
    }

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

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

    private int bitField0_;
    // required .Active active = 1;
    public static final int ACTIVE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.Active active_;
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    public boolean hasActive() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.Active getActive() {
      return active_;
    }
    /**
     * <code>required .Active active = 1;</code>
     *
     * <pre>
     * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder() {
      return active_;
    }

    // required int32 last = 2;
    public static final int LAST_FIELD_NUMBER = 2;
    private int last_;
    /**
     * <code>required int32 last = 2;</code>
     *
     * <pre>
     * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
     * </pre>
     */
    public boolean hasLast() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 last = 2;</code>
     *
     * <pre>
     * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
     * </pre>
     */
    public int getLast() {
      return last_;
    }

    // optional int32 proposer = 3;
    public static final int PROPOSER_FIELD_NUMBER = 3;
    private int proposer_;
    /**
     * <code>optional int32 proposer = 3;</code>
     *
     * <pre>
     * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
     * </pre>
     */
    public boolean hasProposer() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int32 proposer = 3;</code>
     *
     * <pre>
     * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
     * </pre>
     */
    public int getProposer() {
      return proposer_;
    }

    // optional .Card card = 4;
    public static final int CARD_FIELD_NUMBER = 4;
    private io.element.protobuf.SimpleProto.Card card_;
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    public boolean hasCard() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    public io.element.protobuf.SimpleProto.Card getCard() {
      return card_;
    }
    /**
     * <code>optional .Card card = 4;</code>
     *
     * <pre>
     * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
     * </pre>
     */
    public io.element.protobuf.SimpleProto.CardOrBuilder getCardOrBuilder() {
      return card_;
    }

    private void initFields() {
      active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
      last_ = 0;
      proposer_ = 0;
      card_ = io.element.protobuf.SimpleProto.Card.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasActive()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLast()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getActive().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasCard()) {
        if (!getCard().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, active_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, last_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, proposer_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, card_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, active_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, last_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, proposer_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, card_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.PhaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.PhaseInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PhaseInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.PhaseInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_PhaseInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_PhaseInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.PhaseInfo.class, io.element.protobuf.SimpleProto.PhaseInfo.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.PhaseInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (activeBuilder_ == null) {
          active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        last_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        proposer_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (cardBuilder_ == null) {
          card_ = io.element.protobuf.SimpleProto.Card.getDefaultInstance();
        } else {
          cardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_PhaseInfo_descriptor;
      }

      public io.element.protobuf.SimpleProto.PhaseInfo getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.PhaseInfo.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.PhaseInfo build() {
        io.element.protobuf.SimpleProto.PhaseInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.PhaseInfo buildPartial() {
        io.element.protobuf.SimpleProto.PhaseInfo result = new io.element.protobuf.SimpleProto.PhaseInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (activeBuilder_ == null) {
          result.active_ = active_;
        } else {
          result.active_ = activeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.last_ = last_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.proposer_ = proposer_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (cardBuilder_ == null) {
          result.card_ = card_;
        } else {
          result.card_ = cardBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.PhaseInfo) {
          return mergeFrom((io.element.protobuf.SimpleProto.PhaseInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.PhaseInfo other) {
        if (other == io.element.protobuf.SimpleProto.PhaseInfo.getDefaultInstance()) return this;
        if (other.hasActive()) {
          mergeActive(other.getActive());
        }
        if (other.hasLast()) {
          setLast(other.getLast());
        }
        if (other.hasProposer()) {
          setProposer(other.getProposer());
        }
        if (other.hasCard()) {
          mergeCard(other.getCard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasActive()) {
          
          return false;
        }
        if (!hasLast()) {
          
          return false;
        }
        if (!getActive().isInitialized()) {
          
          return false;
        }
        if (hasCard()) {
          if (!getCard().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      // required .Active active = 1;
      private io.element.protobuf.SimpleProto.Active active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder> activeBuilder_;
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public boolean hasActive() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Active getActive() {
        if (activeBuilder_ == null) {
          return active_;
        } else {
          return activeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public Builder setActive(io.element.protobuf.SimpleProto.Active value) {
        if (activeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          active_ = value;
          onChanged();
        } else {
          activeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public Builder setActive(
          io.element.protobuf.SimpleProto.Active.Builder builderForValue) {
        if (activeBuilder_ == null) {
          active_ = builderForValue.build();
          onChanged();
        } else {
          activeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public Builder mergeActive(io.element.protobuf.SimpleProto.Active value) {
        if (activeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              active_ != io.element.protobuf.SimpleProto.Active.getDefaultInstance()) {
            active_ =
              io.element.protobuf.SimpleProto.Active.newBuilder(active_).mergeFrom(value).buildPartial();
          } else {
            active_ = value;
          }
          onChanged();
        } else {
          activeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public Builder clearActive() {
        if (activeBuilder_ == null) {
          active_ = io.element.protobuf.SimpleProto.Active.getDefaultInstance();
          onChanged();
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Active.Builder getActiveBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getActiveFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.ActiveOrBuilder getActiveOrBuilder() {
        if (activeBuilder_ != null) {
          return activeBuilder_.getMessageOrBuilder();
        } else {
          return active_;
        }
      }
      /**
       * <code>required .Active active = 1;</code>
       *
       * <pre>
       * µ±Ç°ÓµÓÐÖ÷½×¶ÎµÄÍæ¼ÒÐÅÏ¢
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder> 
          getActiveFieldBuilder() {
        if (activeBuilder_ == null) {
          activeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Active, io.element.protobuf.SimpleProto.Active.Builder, io.element.protobuf.SimpleProto.ActiveOrBuilder>(
                  active_,
                  getParentForChildren(),
                  isClean());
          active_ = null;
        }
        return activeBuilder_;
      }

      // required int32 last = 2;
      private int last_ ;
      /**
       * <code>required int32 last = 2;</code>
       *
       * <pre>
       * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public boolean hasLast() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 last = 2;</code>
       *
       * <pre>
       * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public int getLast() {
        return last_;
      }
      /**
       * <code>required int32 last = 2;</code>
       *
       * <pre>
       * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public Builder setLast(int value) {
        bitField0_ |= 0x00000002;
        last_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 last = 2;</code>
       *
       * <pre>
       * ¾Ýµ±Ç°×´Ì¬½áÊøÊ£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public Builder clearLast() {
        bitField0_ = (bitField0_ & ~0x00000002);
        last_ = 0;
        onChanged();
        return this;
      }

      // optional int32 proposer = 3;
      private int proposer_ ;
      /**
       * <code>optional int32 proposer = 3;</code>
       *
       * <pre>
       * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
       * </pre>
       */
      public boolean hasProposer() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int32 proposer = 3;</code>
       *
       * <pre>
       * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
       * </pre>
       */
      public int getProposer() {
        return proposer_;
      }
      /**
       * <code>optional int32 proposer = 3;</code>
       *
       * <pre>
       * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
       * </pre>
       */
      public Builder setProposer(int value) {
        bitField0_ |= 0x00000004;
        proposer_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 proposer = 3;</code>
       *
       * <pre>
       * ÉêÇëÈË  Ã»ÓÐÖµµÄ»°¾Í¹ã²¥
       * </pre>
       */
      public Builder clearProposer() {
        bitField0_ = (bitField0_ & ~0x00000004);
        proposer_ = 0;
        onChanged();
        return this;
      }

      // optional .Card card = 4;
      private io.element.protobuf.SimpleProto.Card card_ = io.element.protobuf.SimpleProto.Card.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Card, io.element.protobuf.SimpleProto.Card.Builder, io.element.protobuf.SimpleProto.CardOrBuilder> cardBuilder_;
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public boolean hasCard() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Card getCard() {
        if (cardBuilder_ == null) {
          return card_;
        } else {
          return cardBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public Builder setCard(io.element.protobuf.SimpleProto.Card value) {
        if (cardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          card_ = value;
          onChanged();
        } else {
          cardBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public Builder setCard(
          io.element.protobuf.SimpleProto.Card.Builder builderForValue) {
        if (cardBuilder_ == null) {
          card_ = builderForValue.build();
          onChanged();
        } else {
          cardBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public Builder mergeCard(io.element.protobuf.SimpleProto.Card value) {
        if (cardBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              card_ != io.element.protobuf.SimpleProto.Card.getDefaultInstance()) {
            card_ =
              io.element.protobuf.SimpleProto.Card.newBuilder(card_).mergeFrom(value).buildPartial();
          } else {
            card_ = value;
          }
          onChanged();
        } else {
          cardBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public Builder clearCard() {
        if (cardBuilder_ == null) {
          card_ = io.element.protobuf.SimpleProto.Card.getDefaultInstance();
          onChanged();
        } else {
          cardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public io.element.protobuf.SimpleProto.Card.Builder getCardBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCardFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      public io.element.protobuf.SimpleProto.CardOrBuilder getCardOrBuilder() {
        if (cardBuilder_ != null) {
          return cardBuilder_.getMessageOrBuilder();
        } else {
          return card_;
        }
      }
      /**
       * <code>optional .Card card = 4;</code>
       *
       * <pre>
       * µ±Ç°Ö´ÐÐµÄ¿¨ÅÆÊý¾Ý
       * </pre>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Card, io.element.protobuf.SimpleProto.Card.Builder, io.element.protobuf.SimpleProto.CardOrBuilder> 
          getCardFieldBuilder() {
        if (cardBuilder_ == null) {
          cardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Card, io.element.protobuf.SimpleProto.Card.Builder, io.element.protobuf.SimpleProto.CardOrBuilder>(
                  card_,
                  getParentForChildren(),
                  isClean());
          card_ = null;
        }
        return cardBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:PhaseInfo)
    }

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

    // @@protoc_insertion_point(class_scope:PhaseInfo)
  }

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

    // required int64 playerid = 1;
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * ²é¿´½ÇÉ«
     * </pre>
     */
    boolean hasPlayerid();
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * ²é¿´½ÇÉ«
     * </pre>
     */
    long getPlayerid();

    // required int64 roomid = 2;
    /**
     * <code>required int64 roomid = 2;</code>
     *
     * <pre>
     * ·¿¼äid
     * </pre>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 2;</code>
     *
     * <pre>
     * ·¿¼äid
     * </pre>
     */
    long getRoomid();
  }
  /**
   * Protobuf type {@code G2S_GetPhaseInfo}
   */
  public static final class G2S_GetPhaseInfo extends
      com.google.protobuf.GeneratedMessage
      implements G2S_GetPhaseInfoOrBuilder {
    // Use G2S_GetPhaseInfo.newBuilder() to construct.
    private G2S_GetPhaseInfo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private G2S_GetPhaseInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public G2S_GetPhaseInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_G2S_GetPhaseInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.class, io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 playerid = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private long playerid_;
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * ²é¿´½ÇÉ«
     * </pre>
     */
    public boolean hasPlayerid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 playerid = 1;</code>
     *
     * <pre>
     * ²é¿´½ÇÉ«
     * </pre>
     */
    public long getPlayerid() {
      return playerid_;
    }

    // required int64 roomid = 2;
    public static final int ROOMID_FIELD_NUMBER = 2;
    private long roomid_;
    /**
     * <code>required int64 roomid = 2;</code>
     *
     * <pre>
     * ·¿¼äid
     * </pre>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 roomid = 2;</code>
     *
     * <pre>
     * ·¿¼äid
     * </pre>
     */
    public long getRoomid() {
      return roomid_;
    }

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

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, playerid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, roomid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetPhaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.G2S_GetPhaseInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code G2S_GetPhaseInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.G2S_GetPhaseInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetPhaseInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetPhaseInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.class, io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        playerid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetPhaseInfo_descriptor;
      }

      public io.element.protobuf.SimpleProto.G2S_GetPhaseInfo getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.G2S_GetPhaseInfo build() {
        io.element.protobuf.SimpleProto.G2S_GetPhaseInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.G2S_GetPhaseInfo buildPartial() {
        io.element.protobuf.SimpleProto.G2S_GetPhaseInfo result = new io.element.protobuf.SimpleProto.G2S_GetPhaseInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerid_ = playerid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.roomid_ = roomid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.G2S_GetPhaseInfo) {
          return mergeFrom((io.element.protobuf.SimpleProto.G2S_GetPhaseInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.G2S_GetPhaseInfo other) {
        if (other == io.element.protobuf.SimpleProto.G2S_GetPhaseInfo.getDefaultInstance()) return this;
        if (other.hasPlayerid()) {
          setPlayerid(other.getPlayerid());
        }
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required int64 playerid = 1;
      private long playerid_ ;
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * ²é¿´½ÇÉ«
       * </pre>
       */
      public boolean hasPlayerid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * ²é¿´½ÇÉ«
       * </pre>
       */
      public long getPlayerid() {
        return playerid_;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * ²é¿´½ÇÉ«
       * </pre>
       */
      public Builder setPlayerid(long value) {
        bitField0_ |= 0x00000001;
        playerid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 playerid = 1;</code>
       *
       * <pre>
       * ²é¿´½ÇÉ«
       * </pre>
       */
      public Builder clearPlayerid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerid_ = 0L;
        onChanged();
        return this;
      }

      // required int64 roomid = 2;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 2;</code>
       *
       * <pre>
       * ·¿¼äid
       * </pre>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 roomid = 2;</code>
       *
       * <pre>
       * ·¿¼äid
       * </pre>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 2;</code>
       *
       * <pre>
       * ·¿¼äid
       * </pre>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000002;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 2;</code>
       *
       * <pre>
       * ·¿¼äid
       * </pre>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:G2S_GetPhaseInfo)
    }

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

    // @@protoc_insertion_point(class_scope:G2S_GetPhaseInfo)
  }

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

    // required int64 roomid = 1;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 1;</code>
     */
    long getRoomid();
  }
  /**
   * Protobuf type {@code G2S_GetRoomInfo}
   */
  public static final class G2S_GetRoomInfo extends
      com.google.protobuf.GeneratedMessage
      implements G2S_GetRoomInfoOrBuilder {
    // Use G2S_GetRoomInfo.newBuilder() to construct.
    private G2S_GetRoomInfo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private G2S_GetRoomInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public G2S_GetRoomInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_G2S_GetRoomInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.G2S_GetRoomInfo.class, io.element.protobuf.SimpleProto.G2S_GetRoomInfo.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 roomid = 1;
    public static final int ROOMID_FIELD_NUMBER = 1;
    private long roomid_;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

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

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

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

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

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

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

    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2S_GetRoomInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.G2S_GetRoomInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code G2S_GetRoomInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.G2S_GetRoomInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetRoomInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetRoomInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.G2S_GetRoomInfo.class, io.element.protobuf.SimpleProto.G2S_GetRoomInfo.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.G2S_GetRoomInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_G2S_GetRoomInfo_descriptor;
      }

      public io.element.protobuf.SimpleProto.G2S_GetRoomInfo getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.G2S_GetRoomInfo.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.G2S_GetRoomInfo build() {
        io.element.protobuf.SimpleProto.G2S_GetRoomInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.G2S_GetRoomInfo buildPartial() {
        io.element.protobuf.SimpleProto.G2S_GetRoomInfo result = new io.element.protobuf.SimpleProto.G2S_GetRoomInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.roomid_ = roomid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.G2S_GetRoomInfo) {
          return mergeFrom((io.element.protobuf.SimpleProto.G2S_GetRoomInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.G2S_GetRoomInfo other) {
        if (other == io.element.protobuf.SimpleProto.G2S_GetRoomInfo.getDefaultInstance()) return this;
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required int64 roomid = 1;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000001;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:G2S_GetRoomInfo)
    }

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

    // @@protoc_insertion_point(class_scope:G2S_GetRoomInfo)
  }

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

    // required int32 last = 1;
    /**
     * <code>required int32 last = 1;</code>
     *
     * <pre>
     * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
     * </pre>
     */
    boolean hasLast();
    /**
     * <code>required int32 last = 1;</code>
     *
     * <pre>
     * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
     * </pre>
     */
    int getLast();

    // required .Room room = 2;
    /**
     * <code>required .Room room = 2;</code>
     */
    boolean hasRoom();
    /**
     * <code>required .Room room = 2;</code>
     */
    io.element.protobuf.SimpleProto.Room getRoom();
    /**
     * <code>required .Room room = 2;</code>
     */
    io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder();
  }
  /**
   * Protobuf type {@code S2G_NotifyGameBegin}
   *
   * <pre>
   *-*-* S2G_NOTIFY_GLOBAL_GAME_BEGIN
   * </pre>
   */
  public static final class S2G_NotifyGameBegin extends
      com.google.protobuf.GeneratedMessage
      implements S2G_NotifyGameBeginOrBuilder {
    // Use S2G_NotifyGameBegin.newBuilder() to construct.
    private S2G_NotifyGameBegin(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_NotifyGameBegin(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_NotifyGameBegin getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_NotifyGameBegin(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              last_ = input.readInt32();
              break;
            }
            case 18: {
              io.element.protobuf.SimpleProto.Room.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = room_.toBuilder();
              }
              room_ = input.readMessage(io.element.protobuf.SimpleProto.Room.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(room_);
                room_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyGameBegin_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyGameBegin_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.class, io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.Builder.class);
    }

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

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

    private int bitField0_;
    // required int32 last = 1;
    public static final int LAST_FIELD_NUMBER = 1;
    private int last_;
    /**
     * <code>required int32 last = 1;</code>
     *
     * <pre>
     * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
     * </pre>
     */
    public boolean hasLast() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int32 last = 1;</code>
     *
     * <pre>
     * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
     * </pre>
     */
    public int getLast() {
      return last_;
    }

    // required .Room room = 2;
    public static final int ROOM_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.Room room_;
    /**
     * <code>required .Room room = 2;</code>
     */
    public boolean hasRoom() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .Room room = 2;</code>
     */
    public io.element.protobuf.SimpleProto.Room getRoom() {
      return room_;
    }
    /**
     * <code>required .Room room = 2;</code>
     */
    public io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder() {
      return room_;
    }

    private void initFields() {
      last_ = 0;
      room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasLast()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRoom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRoom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyGameBegin parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_NotifyGameBegin prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_NotifyGameBegin}
     *
     * <pre>
     *-*-* S2G_NOTIFY_GLOBAL_GAME_BEGIN
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_NotifyGameBeginOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyGameBegin_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyGameBegin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.class, io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        last_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (roomBuilder_ == null) {
          room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
        } else {
          roomBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyGameBegin_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyGameBegin getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyGameBegin build() {
        io.element.protobuf.SimpleProto.S2G_NotifyGameBegin result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyGameBegin buildPartial() {
        io.element.protobuf.SimpleProto.S2G_NotifyGameBegin result = new io.element.protobuf.SimpleProto.S2G_NotifyGameBegin(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.last_ = last_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (roomBuilder_ == null) {
          result.room_ = room_;
        } else {
          result.room_ = roomBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_NotifyGameBegin) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_NotifyGameBegin)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_NotifyGameBegin other) {
        if (other == io.element.protobuf.SimpleProto.S2G_NotifyGameBegin.getDefaultInstance()) return this;
        if (other.hasLast()) {
          setLast(other.getLast());
        }
        if (other.hasRoom()) {
          mergeRoom(other.getRoom());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLast()) {
          
          return false;
        }
        if (!hasRoom()) {
          
          return false;
        }
        if (!getRoom().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required int32 last = 1;
      private int last_ ;
      /**
       * <code>required int32 last = 1;</code>
       *
       * <pre>
       * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public boolean hasLast() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int32 last = 1;</code>
       *
       * <pre>
       * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public int getLast() {
        return last_;
      }
      /**
       * <code>required int32 last = 1;</code>
       *
       * <pre>
       * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public Builder setLast(int value) {
        bitField0_ |= 0x00000001;
        last_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 last = 1;</code>
       *
       * <pre>
       * µ±Ç°×´Ì¬Ê£ÏÂµÄÊ±¼ä
       * </pre>
       */
      public Builder clearLast() {
        bitField0_ = (bitField0_ & ~0x00000001);
        last_ = 0;
        onChanged();
        return this;
      }

      // required .Room room = 2;
      private io.element.protobuf.SimpleProto.Room room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder> roomBuilder_;
      /**
       * <code>required .Room room = 2;</code>
       */
      public boolean hasRoom() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Room getRoom() {
        if (roomBuilder_ == null) {
          return room_;
        } else {
          return roomBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public Builder setRoom(io.element.protobuf.SimpleProto.Room value) {
        if (roomBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          room_ = value;
          onChanged();
        } else {
          roomBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public Builder setRoom(
          io.element.protobuf.SimpleProto.Room.Builder builderForValue) {
        if (roomBuilder_ == null) {
          room_ = builderForValue.build();
          onChanged();
        } else {
          roomBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public Builder mergeRoom(io.element.protobuf.SimpleProto.Room value) {
        if (roomBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              room_ != io.element.protobuf.SimpleProto.Room.getDefaultInstance()) {
            room_ =
              io.element.protobuf.SimpleProto.Room.newBuilder(room_).mergeFrom(value).buildPartial();
          } else {
            room_ = value;
          }
          onChanged();
        } else {
          roomBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public Builder clearRoom() {
        if (roomBuilder_ == null) {
          room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
          onChanged();
        } else {
          roomBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public io.element.protobuf.SimpleProto.Room.Builder getRoomBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getRoomFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      public io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder() {
        if (roomBuilder_ != null) {
          return roomBuilder_.getMessageOrBuilder();
        } else {
          return room_;
        }
      }
      /**
       * <code>required .Room room = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder> 
          getRoomFieldBuilder() {
        if (roomBuilder_ == null) {
          roomBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder>(
                  room_,
                  getParentForChildren(),
                  isClean());
          room_ = null;
        }
        return roomBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:S2G_NotifyGameBegin)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_NotifyGameBegin)
  }

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

    // required .PHASE_TYPE phase = 1;
    /**
     * <code>required .PHASE_TYPE phase = 1;</code>
     */
    boolean hasPhase();
    /**
     * <code>required .PHASE_TYPE phase = 1;</code>
     */
    io.element.protobuf.SimpleProto.PHASE_TYPE getPhase();

    // required int32 last = 2;
    /**
     * <code>required int32 last = 2;</code>
     */
    boolean hasLast();
    /**
     * <code>required int32 last = 2;</code>
     */
    int getLast();

    // required .Room room = 3;
    /**
     * <code>required .Room room = 3;</code>
     */
    boolean hasRoom();
    /**
     * <code>required .Room room = 3;</code>
     */
    io.element.protobuf.SimpleProto.Room getRoom();
    /**
     * <code>required .Room room = 3;</code>
     */
    io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder();
  }
  /**
   * Protobuf type {@code S2G_NotifyPhaseBegin}
   */
  public static final class S2G_NotifyPhaseBegin extends
      com.google.protobuf.GeneratedMessage
      implements S2G_NotifyPhaseBeginOrBuilder {
    // Use S2G_NotifyPhaseBegin.newBuilder() to construct.
    private S2G_NotifyPhaseBegin(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_NotifyPhaseBegin(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_NotifyPhaseBegin getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_NotifyPhaseBegin(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.PHASE_TYPE value = io.element.protobuf.SimpleProto.PHASE_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                phase_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              last_ = input.readInt32();
              break;
            }
            case 26: {
              io.element.protobuf.SimpleProto.Room.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = room_.toBuilder();
              }
              room_ = input.readMessage(io.element.protobuf.SimpleProto.Room.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(room_);
                room_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyPhaseBegin_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyPhaseBegin_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.class, io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.Builder.class);
    }

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

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

    private int bitField0_;
    // required .PHASE_TYPE phase = 1;
    public static final int PHASE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.PHASE_TYPE phase_;
    /**
     * <code>required .PHASE_TYPE phase = 1;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .PHASE_TYPE phase = 1;</code>
     */
    public io.element.protobuf.SimpleProto.PHASE_TYPE getPhase() {
      return phase_;
    }

    // required int32 last = 2;
    public static final int LAST_FIELD_NUMBER = 2;
    private int last_;
    /**
     * <code>required int32 last = 2;</code>
     */
    public boolean hasLast() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 last = 2;</code>
     */
    public int getLast() {
      return last_;
    }

    // required .Room room = 3;
    public static final int ROOM_FIELD_NUMBER = 3;
    private io.element.protobuf.SimpleProto.Room room_;
    /**
     * <code>required .Room room = 3;</code>
     */
    public boolean hasRoom() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .Room room = 3;</code>
     */
    public io.element.protobuf.SimpleProto.Room getRoom() {
      return room_;
    }
    /**
     * <code>required .Room room = 3;</code>
     */
    public io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder() {
      return room_;
    }

    private void initFields() {
      phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
      last_ = 0;
      room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPhase()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLast()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRoom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRoom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, last_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, room_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, last_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, room_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_NotifyPhaseBegin}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_NotifyPhaseBeginOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyPhaseBegin_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyPhaseBegin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.class, io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
        bitField0_ = (bitField0_ & ~0x00000001);
        last_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (roomBuilder_ == null) {
          room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
        } else {
          roomBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_NotifyPhaseBegin_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin build() {
        io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin buildPartial() {
        io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin result = new io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.last_ = last_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (roomBuilder_ == null) {
          result.room_ = room_;
        } else {
          result.room_ = roomBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin other) {
        if (other == io.element.protobuf.SimpleProto.S2G_NotifyPhaseBegin.getDefaultInstance()) return this;
        if (other.hasPhase()) {
          setPhase(other.getPhase());
        }
        if (other.hasLast()) {
          setLast(other.getLast());
        }
        if (other.hasRoom()) {
          mergeRoom(other.getRoom());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPhase()) {
          
          return false;
        }
        if (!hasLast()) {
          
          return false;
        }
        if (!hasRoom()) {
          
          return false;
        }
        if (!getRoom().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required .PHASE_TYPE phase = 1;
      private io.element.protobuf.SimpleProto.PHASE_TYPE phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
      /**
       * <code>required .PHASE_TYPE phase = 1;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .PHASE_TYPE phase = 1;</code>
       */
      public io.element.protobuf.SimpleProto.PHASE_TYPE getPhase() {
        return phase_;
      }
      /**
       * <code>required .PHASE_TYPE phase = 1;</code>
       */
      public Builder setPhase(io.element.protobuf.SimpleProto.PHASE_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .PHASE_TYPE phase = 1;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = io.element.protobuf.SimpleProto.PHASE_TYPE.PHASE_NONE;
        onChanged();
        return this;
      }

      // required int32 last = 2;
      private int last_ ;
      /**
       * <code>required int32 last = 2;</code>
       */
      public boolean hasLast() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 last = 2;</code>
       */
      public int getLast() {
        return last_;
      }
      /**
       * <code>required int32 last = 2;</code>
       */
      public Builder setLast(int value) {
        bitField0_ |= 0x00000002;
        last_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 last = 2;</code>
       */
      public Builder clearLast() {
        bitField0_ = (bitField0_ & ~0x00000002);
        last_ = 0;
        onChanged();
        return this;
      }

      // required .Room room = 3;
      private io.element.protobuf.SimpleProto.Room room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder> roomBuilder_;
      /**
       * <code>required .Room room = 3;</code>
       */
      public boolean hasRoom() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public io.element.protobuf.SimpleProto.Room getRoom() {
        if (roomBuilder_ == null) {
          return room_;
        } else {
          return roomBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public Builder setRoom(io.element.protobuf.SimpleProto.Room value) {
        if (roomBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          room_ = value;
          onChanged();
        } else {
          roomBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public Builder setRoom(
          io.element.protobuf.SimpleProto.Room.Builder builderForValue) {
        if (roomBuilder_ == null) {
          room_ = builderForValue.build();
          onChanged();
        } else {
          roomBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public Builder mergeRoom(io.element.protobuf.SimpleProto.Room value) {
        if (roomBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              room_ != io.element.protobuf.SimpleProto.Room.getDefaultInstance()) {
            room_ =
              io.element.protobuf.SimpleProto.Room.newBuilder(room_).mergeFrom(value).buildPartial();
          } else {
            room_ = value;
          }
          onChanged();
        } else {
          roomBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public Builder clearRoom() {
        if (roomBuilder_ == null) {
          room_ = io.element.protobuf.SimpleProto.Room.getDefaultInstance();
          onChanged();
        } else {
          roomBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public io.element.protobuf.SimpleProto.Room.Builder getRoomBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getRoomFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      public io.element.protobuf.SimpleProto.RoomOrBuilder getRoomOrBuilder() {
        if (roomBuilder_ != null) {
          return roomBuilder_.getMessageOrBuilder();
        } else {
          return room_;
        }
      }
      /**
       * <code>required .Room room = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder> 
          getRoomFieldBuilder() {
        if (roomBuilder_ == null) {
          roomBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.Room, io.element.protobuf.SimpleProto.Room.Builder, io.element.protobuf.SimpleProto.RoomOrBuilder>(
                  room_,
                  getParentForChildren(),
                  isClean());
          room_ = null;
        }
        return roomBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:S2G_NotifyPhaseBegin)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_NotifyPhaseBegin)
  }

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

    // required int64 roomid = 1;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 1;</code>
     */
    long getRoomid();

    // required int64 playerid = 2;
    /**
     * <code>required int64 playerid = 2;</code>
     *
     * <pre>
     * Ë­Ö´ÐÐÑ¡Ôñ
     * </pre>
     */
    boolean hasPlayerid();
    /**
     * <code>required int64 playerid = 2;</code>
     *
     * <pre>
     * Ë­Ö´ÐÐÑ¡Ôñ
     * </pre>
     */
    long getPlayerid();

    // required int32 type = 3;
    /**
     * <code>required int32 type = 3;</code>
     *
     * <pre>
     * Ñ¡Ôñ·½Ê½  choose_type
     * </pre>
     */
    boolean hasType();
    /**
     * <code>required int32 type = 3;</code>
     *
     * <pre>
     * Ñ¡Ôñ·½Ê½  choose_type
     * </pre>
     */
    int getType();

    // required int32 count = 4;
    /**
     * <code>required int32 count = 4;</code>
     *
     * <pre>
     * Ñ¡¼¸¸ö
     * </pre>
     */
    boolean hasCount();
    /**
     * <code>required int32 count = 4;</code>
     *
     * <pre>
     * Ñ¡¼¸¸ö
     * </pre>
     */
    int getCount();

    // repeated int32 selecters = 5;
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    java.util.List<java.lang.Integer> getSelectersList();
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    int getSelectersCount();
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    int getSelecters(int index);

    // required int32 index = 6;
    /**
     * <code>required int32 index = 6;</code>
     *
     * <pre>
     * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
     * </pre>
     */
    boolean hasIndex();
    /**
     * <code>required int32 index = 6;</code>
     *
     * <pre>
     * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
     * </pre>
     */
    int getIndex();
  }
  /**
   * Protobuf type {@code S2G_ChoosePlayers}
   */
  public static final class S2G_ChoosePlayers extends
      com.google.protobuf.GeneratedMessage
      implements S2G_ChoosePlayersOrBuilder {
    // Use S2G_ChoosePlayers.newBuilder() to construct.
    private S2G_ChoosePlayers(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_ChoosePlayers(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_ChoosePlayers getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_ChoosePlayers(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              roomid_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerid_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              type_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              count_ = input.readInt32();
              break;
            }
            case 40: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                selecters_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              selecters_.add(input.readInt32());
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                selecters_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              while (input.getBytesUntilLimit() > 0) {
                selecters_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              index_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          selecters_ = java.util.Collections.unmodifiableList(selecters_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_ChoosePlayers_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_ChoosePlayers_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_ChoosePlayers.class, io.element.protobuf.SimpleProto.S2G_ChoosePlayers.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 roomid = 1;
    public static final int ROOMID_FIELD_NUMBER = 1;
    private long roomid_;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

    // required int64 playerid = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private long playerid_;
    /**
     * <code>required int64 playerid = 2;</code>
     *
     * <pre>
     * Ë­Ö´ÐÐÑ¡Ôñ
     * </pre>
     */
    public boolean hasPlayerid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int64 playerid = 2;</code>
     *
     * <pre>
     * Ë­Ö´ÐÐÑ¡Ôñ
     * </pre>
     */
    public long getPlayerid() {
      return playerid_;
    }

    // required int32 type = 3;
    public static final int TYPE_FIELD_NUMBER = 3;
    private int type_;
    /**
     * <code>required int32 type = 3;</code>
     *
     * <pre>
     * Ñ¡Ôñ·½Ê½  choose_type
     * </pre>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required int32 type = 3;</code>
     *
     * <pre>
     * Ñ¡Ôñ·½Ê½  choose_type
     * </pre>
     */
    public int getType() {
      return type_;
    }

    // required int32 count = 4;
    public static final int COUNT_FIELD_NUMBER = 4;
    private int count_;
    /**
     * <code>required int32 count = 4;</code>
     *
     * <pre>
     * Ñ¡¼¸¸ö
     * </pre>
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required int32 count = 4;</code>
     *
     * <pre>
     * Ñ¡¼¸¸ö
     * </pre>
     */
    public int getCount() {
      return count_;
    }

    // repeated int32 selecters = 5;
    public static final int SELECTERS_FIELD_NUMBER = 5;
    private java.util.List<java.lang.Integer> selecters_;
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    public java.util.List<java.lang.Integer>
        getSelectersList() {
      return selecters_;
    }
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    public int getSelectersCount() {
      return selecters_.size();
    }
    /**
     * <code>repeated int32 selecters = 5;</code>
     *
     * <pre>
     * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
     * </pre>
     */
    public int getSelecters(int index) {
      return selecters_.get(index);
    }

    // required int32 index = 6;
    public static final int INDEX_FIELD_NUMBER = 6;
    private int index_;
    /**
     * <code>required int32 index = 6;</code>
     *
     * <pre>
     * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
     * </pre>
     */
    public boolean hasIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required int32 index = 6;</code>
     *
     * <pre>
     * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
     * </pre>
     */
    public int getIndex() {
      return index_;
    }

    private void initFields() {
      roomid_ = 0L;
      playerid_ = 0L;
      type_ = 0;
      count_ = 0;
      selecters_ = java.util.Collections.emptyList();
      index_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasRoomid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, roomid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, playerid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, type_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, count_);
      }
      for (int i = 0; i < selecters_.size(); i++) {
        output.writeInt32(5, selecters_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, index_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, roomid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, playerid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, type_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, count_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < selecters_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(selecters_.get(i));
        }
        size += dataSize;
        size += 1 * getSelectersList().size();
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, index_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ChoosePlayers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_ChoosePlayers prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_ChoosePlayers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_ChoosePlayersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ChoosePlayers_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ChoosePlayers_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_ChoosePlayers.class, io.element.protobuf.SimpleProto.S2G_ChoosePlayers.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_ChoosePlayers.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        count_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        selecters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        index_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ChoosePlayers_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_ChoosePlayers getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_ChoosePlayers.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_ChoosePlayers build() {
        io.element.protobuf.SimpleProto.S2G_ChoosePlayers result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_ChoosePlayers buildPartial() {
        io.element.protobuf.SimpleProto.S2G_ChoosePlayers result = new io.element.protobuf.SimpleProto.S2G_ChoosePlayers(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.roomid_ = roomid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerid_ = playerid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.count_ = count_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          selecters_ = java.util.Collections.unmodifiableList(selecters_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.selecters_ = selecters_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.index_ = index_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_ChoosePlayers) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_ChoosePlayers)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_ChoosePlayers other) {
        if (other == io.element.protobuf.SimpleProto.S2G_ChoosePlayers.getDefaultInstance()) return this;
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        if (other.hasPlayerid()) {
          setPlayerid(other.getPlayerid());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        if (!other.selecters_.isEmpty()) {
          if (selecters_.isEmpty()) {
            selecters_ = other.selecters_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureSelectersIsMutable();
            selecters_.addAll(other.selecters_);
          }
          onChanged();
        }
        if (other.hasIndex()) {
          setIndex(other.getIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRoomid()) {
          
          return false;
        }
        if (!hasPlayerid()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!hasCount()) {
          
          return false;
        }
        if (!hasIndex()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 roomid = 1;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000001;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // required int64 playerid = 2;
      private long playerid_ ;
      /**
       * <code>required int64 playerid = 2;</code>
       *
       * <pre>
       * Ë­Ö´ÐÐÑ¡Ôñ
       * </pre>
       */
      public boolean hasPlayerid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 playerid = 2;</code>
       *
       * <pre>
       * Ë­Ö´ÐÐÑ¡Ôñ
       * </pre>
       */
      public long getPlayerid() {
        return playerid_;
      }
      /**
       * <code>required int64 playerid = 2;</code>
       *
       * <pre>
       * Ë­Ö´ÐÐÑ¡Ôñ
       * </pre>
       */
      public Builder setPlayerid(long value) {
        bitField0_ |= 0x00000002;
        playerid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 playerid = 2;</code>
       *
       * <pre>
       * Ë­Ö´ÐÐÑ¡Ôñ
       * </pre>
       */
      public Builder clearPlayerid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerid_ = 0L;
        onChanged();
        return this;
      }

      // required int32 type = 3;
      private int type_ ;
      /**
       * <code>required int32 type = 3;</code>
       *
       * <pre>
       * Ñ¡Ôñ·½Ê½  choose_type
       * </pre>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int32 type = 3;</code>
       *
       * <pre>
       * Ñ¡Ôñ·½Ê½  choose_type
       * </pre>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required int32 type = 3;</code>
       *
       * <pre>
       * Ñ¡Ôñ·½Ê½  choose_type
       * </pre>
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 type = 3;</code>
       *
       * <pre>
       * Ñ¡Ôñ·½Ê½  choose_type
       * </pre>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = 0;
        onChanged();
        return this;
      }

      // required int32 count = 4;
      private int count_ ;
      /**
       * <code>required int32 count = 4;</code>
       *
       * <pre>
       * Ñ¡¼¸¸ö
       * </pre>
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required int32 count = 4;</code>
       *
       * <pre>
       * Ñ¡¼¸¸ö
       * </pre>
       */
      public int getCount() {
        return count_;
      }
      /**
       * <code>required int32 count = 4;</code>
       *
       * <pre>
       * Ñ¡¼¸¸ö
       * </pre>
       */
      public Builder setCount(int value) {
        bitField0_ |= 0x00000008;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 count = 4;</code>
       *
       * <pre>
       * Ñ¡¼¸¸ö
       * </pre>
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        count_ = 0;
        onChanged();
        return this;
      }

      // repeated int32 selecters = 5;
      private java.util.List<java.lang.Integer> selecters_ = java.util.Collections.emptyList();
      private void ensureSelectersIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          selecters_ = new java.util.ArrayList<java.lang.Integer>(selecters_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public java.util.List<java.lang.Integer>
          getSelectersList() {
        return java.util.Collections.unmodifiableList(selecters_);
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public int getSelectersCount() {
        return selecters_.size();
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public int getSelecters(int index) {
        return selecters_.get(index);
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public Builder setSelecters(
          int index, int value) {
        ensureSelectersIsMutable();
        selecters_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public Builder addSelecters(int value) {
        ensureSelectersIsMutable();
        selecters_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public Builder addAllSelecters(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSelectersIsMutable();
        super.addAll(values, selecters_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 selecters = 5;</code>
       *
       * <pre>
       * ¿É¹©Ñ¡ÔñµÄÍæ¼ÒÎ»ÖÃ
       * </pre>
       */
      public Builder clearSelecters() {
        selecters_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      // required int32 index = 6;
      private int index_ ;
      /**
       * <code>required int32 index = 6;</code>
       *
       * <pre>
       * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
       * </pre>
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required int32 index = 6;</code>
       *
       * <pre>
       * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
       * </pre>
       */
      public int getIndex() {
        return index_;
      }
      /**
       * <code>required int32 index = 6;</code>
       *
       * <pre>
       * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
       * </pre>
       */
      public Builder setIndex(int value) {
        bitField0_ |= 0x00000020;
        index_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 index = 6;</code>
       *
       * <pre>
       * ¸Ã×Ó²Ù×÷ËùÔÚvecÎ»ÖÃ
       * </pre>
       */
      public Builder clearIndex() {
        bitField0_ = (bitField0_ & ~0x00000020);
        index_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:S2G_ChoosePlayers)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_ChoosePlayers)
  }

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

    // required int64 roomid = 1;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 1;</code>
     */
    long getRoomid();

    // required .ReactorInfo actor = 2;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    boolean hasActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfo getActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder();
  }
  /**
   * Protobuf type {@code S2G_PerfectPlayer}
   */
  public static final class S2G_PerfectPlayer extends
      com.google.protobuf.GeneratedMessage
      implements S2G_PerfectPlayerOrBuilder {
    // Use S2G_PerfectPlayer.newBuilder() to construct.
    private S2G_PerfectPlayer(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_PerfectPlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_PerfectPlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_PerfectPlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              roomid_ = input.readInt64();
              break;
            }
            case 18: {
              io.element.protobuf.SimpleProto.ReactorInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = actor_.toBuilder();
              }
              actor_ = input.readMessage(io.element.protobuf.SimpleProto.ReactorInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(actor_);
                actor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_PerfectPlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_PerfectPlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_PerfectPlayer.class, io.element.protobuf.SimpleProto.S2G_PerfectPlayer.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 roomid = 1;
    public static final int ROOMID_FIELD_NUMBER = 1;
    private long roomid_;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

    // required .ReactorInfo actor = 2;
    public static final int ACTOR_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.ReactorInfo actor_;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public boolean hasActor() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
      return actor_;
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
      return actor_;
    }

    private void initFields() {
      roomid_ = 0L;
      actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasRoomid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getActor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_PerfectPlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_PerfectPlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_PerfectPlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_PerfectPlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_PerfectPlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_PerfectPlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_PerfectPlayer.class, io.element.protobuf.SimpleProto.S2G_PerfectPlayer.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_PerfectPlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_PerfectPlayer_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_PerfectPlayer getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_PerfectPlayer.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_PerfectPlayer build() {
        io.element.protobuf.SimpleProto.S2G_PerfectPlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_PerfectPlayer buildPartial() {
        io.element.protobuf.SimpleProto.S2G_PerfectPlayer result = new io.element.protobuf.SimpleProto.S2G_PerfectPlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.roomid_ = roomid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (actorBuilder_ == null) {
          result.actor_ = actor_;
        } else {
          result.actor_ = actorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_PerfectPlayer) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_PerfectPlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_PerfectPlayer other) {
        if (other == io.element.protobuf.SimpleProto.S2G_PerfectPlayer.getDefaultInstance()) return this;
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        if (other.hasActor()) {
          mergeActor(other.getActor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRoomid()) {
          
          return false;
        }
        if (!hasActor()) {
          
          return false;
        }
        if (!getActor().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 roomid = 1;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000001;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // required .ReactorInfo actor = 2;
      private io.element.protobuf.SimpleProto.ReactorInfo actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> actorBuilder_;
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public boolean hasActor() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
        if (actorBuilder_ == null) {
          return actor_;
        } else {
          return actorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actor_ = value;
          onChanged();
        } else {
          actorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(
          io.element.protobuf.SimpleProto.ReactorInfo.Builder builderForValue) {
        if (actorBuilder_ == null) {
          actor_ = builderForValue.build();
          onChanged();
        } else {
          actorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder mergeActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              actor_ != io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance()) {
            actor_ =
              io.element.protobuf.SimpleProto.ReactorInfo.newBuilder(actor_).mergeFrom(value).buildPartial();
          } else {
            actor_ = value;
          }
          onChanged();
        } else {
          actorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder clearActor() {
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
          onChanged();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo.Builder getActorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getActorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
        if (actorBuilder_ != null) {
          return actorBuilder_.getMessageOrBuilder();
        } else {
          return actor_;
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> 
          getActorFieldBuilder() {
        if (actorBuilder_ == null) {
          actorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder>(
                  actor_,
                  getParentForChildren(),
                  isClean());
          actor_ = null;
        }
        return actorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:S2G_PerfectPlayer)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_PerfectPlayer)
  }

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

    // required int64 roomid = 1;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 1;</code>
     */
    long getRoomid();

    // required .ReactorInfo actor = 2;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    boolean hasActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfo getActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder();
  }
  /**
   * Protobuf type {@code S2G_StealthPlayer}
   */
  public static final class S2G_StealthPlayer extends
      com.google.protobuf.GeneratedMessage
      implements S2G_StealthPlayerOrBuilder {
    // Use S2G_StealthPlayer.newBuilder() to construct.
    private S2G_StealthPlayer(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_StealthPlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_StealthPlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_StealthPlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              roomid_ = input.readInt64();
              break;
            }
            case 18: {
              io.element.protobuf.SimpleProto.ReactorInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = actor_.toBuilder();
              }
              actor_ = input.readMessage(io.element.protobuf.SimpleProto.ReactorInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(actor_);
                actor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_StealthPlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_StealthPlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_StealthPlayer.class, io.element.protobuf.SimpleProto.S2G_StealthPlayer.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 roomid = 1;
    public static final int ROOMID_FIELD_NUMBER = 1;
    private long roomid_;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

    // required .ReactorInfo actor = 2;
    public static final int ACTOR_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.ReactorInfo actor_;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public boolean hasActor() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
      return actor_;
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
      return actor_;
    }

    private void initFields() {
      roomid_ = 0L;
      actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasRoomid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getActor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_StealthPlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_StealthPlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_StealthPlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_StealthPlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_StealthPlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_StealthPlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_StealthPlayer.class, io.element.protobuf.SimpleProto.S2G_StealthPlayer.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_StealthPlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_StealthPlayer_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_StealthPlayer getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_StealthPlayer.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_StealthPlayer build() {
        io.element.protobuf.SimpleProto.S2G_StealthPlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_StealthPlayer buildPartial() {
        io.element.protobuf.SimpleProto.S2G_StealthPlayer result = new io.element.protobuf.SimpleProto.S2G_StealthPlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.roomid_ = roomid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (actorBuilder_ == null) {
          result.actor_ = actor_;
        } else {
          result.actor_ = actorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_StealthPlayer) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_StealthPlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_StealthPlayer other) {
        if (other == io.element.protobuf.SimpleProto.S2G_StealthPlayer.getDefaultInstance()) return this;
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        if (other.hasActor()) {
          mergeActor(other.getActor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRoomid()) {
          
          return false;
        }
        if (!hasActor()) {
          
          return false;
        }
        if (!getActor().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 roomid = 1;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000001;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // required .ReactorInfo actor = 2;
      private io.element.protobuf.SimpleProto.ReactorInfo actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> actorBuilder_;
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public boolean hasActor() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
        if (actorBuilder_ == null) {
          return actor_;
        } else {
          return actorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actor_ = value;
          onChanged();
        } else {
          actorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(
          io.element.protobuf.SimpleProto.ReactorInfo.Builder builderForValue) {
        if (actorBuilder_ == null) {
          actor_ = builderForValue.build();
          onChanged();
        } else {
          actorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder mergeActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              actor_ != io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance()) {
            actor_ =
              io.element.protobuf.SimpleProto.ReactorInfo.newBuilder(actor_).mergeFrom(value).buildPartial();
          } else {
            actor_ = value;
          }
          onChanged();
        } else {
          actorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder clearActor() {
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
          onChanged();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo.Builder getActorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getActorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
        if (actorBuilder_ != null) {
          return actorBuilder_.getMessageOrBuilder();
        } else {
          return actor_;
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> 
          getActorFieldBuilder() {
        if (actorBuilder_ == null) {
          actorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder>(
                  actor_,
                  getParentForChildren(),
                  isClean());
          actor_ = null;
        }
        return actorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:S2G_StealthPlayer)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_StealthPlayer)
  }

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

    // required int64 roomid = 1;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    boolean hasRoomid();
    /**
     * <code>required int64 roomid = 1;</code>
     */
    long getRoomid();

    // required .ReactorInfo actor = 2;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    boolean hasActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfo getActor();
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder();
  }
  /**
   * Protobuf type {@code S2G_ReactorInfo}
   */
  public static final class S2G_ReactorInfo extends
      com.google.protobuf.GeneratedMessage
      implements S2G_ReactorInfoOrBuilder {
    // Use S2G_ReactorInfo.newBuilder() to construct.
    private S2G_ReactorInfo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2G_ReactorInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2G_ReactorInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2G_ReactorInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              roomid_ = input.readInt64();
              break;
            }
            case 18: {
              io.element.protobuf.SimpleProto.ReactorInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = actor_.toBuilder();
              }
              actor_ = input.readMessage(io.element.protobuf.SimpleProto.ReactorInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(actor_);
                actor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_ReactorInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2G_ReactorInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2G_ReactorInfo.class, io.element.protobuf.SimpleProto.S2G_ReactorInfo.Builder.class);
    }

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

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

    private int bitField0_;
    // required int64 roomid = 1;
    public static final int ROOMID_FIELD_NUMBER = 1;
    private long roomid_;
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required int64 roomid = 1;</code>
     */
    public long getRoomid() {
      return roomid_;
    }

    // required .ReactorInfo actor = 2;
    public static final int ACTOR_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.ReactorInfo actor_;
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public boolean hasActor() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
      return actor_;
    }
    /**
     * <code>required .ReactorInfo actor = 2;</code>
     */
    public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
      return actor_;
    }

    private void initFields() {
      roomid_ = 0L;
      actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasRoomid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasActor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getActor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2G_ReactorInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2G_ReactorInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2G_ReactorInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2G_ReactorInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ReactorInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ReactorInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2G_ReactorInfo.class, io.element.protobuf.SimpleProto.S2G_ReactorInfo.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2G_ReactorInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        roomid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2G_ReactorInfo_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2G_ReactorInfo getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2G_ReactorInfo.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2G_ReactorInfo build() {
        io.element.protobuf.SimpleProto.S2G_ReactorInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2G_ReactorInfo buildPartial() {
        io.element.protobuf.SimpleProto.S2G_ReactorInfo result = new io.element.protobuf.SimpleProto.S2G_ReactorInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.roomid_ = roomid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (actorBuilder_ == null) {
          result.actor_ = actor_;
        } else {
          result.actor_ = actorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2G_ReactorInfo) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2G_ReactorInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2G_ReactorInfo other) {
        if (other == io.element.protobuf.SimpleProto.S2G_ReactorInfo.getDefaultInstance()) return this;
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        if (other.hasActor()) {
          mergeActor(other.getActor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRoomid()) {
          
          return false;
        }
        if (!hasActor()) {
          
          return false;
        }
        if (!getActor().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      // required int64 roomid = 1;
      private long roomid_ ;
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public long getRoomid() {
        return roomid_;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder setRoomid(long value) {
        bitField0_ |= 0x00000001;
        roomid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 roomid = 1;</code>
       */
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        roomid_ = 0L;
        onChanged();
        return this;
      }

      // required .ReactorInfo actor = 2;
      private io.element.protobuf.SimpleProto.ReactorInfo actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> actorBuilder_;
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public boolean hasActor() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo getActor() {
        if (actorBuilder_ == null) {
          return actor_;
        } else {
          return actorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actor_ = value;
          onChanged();
        } else {
          actorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder setActor(
          io.element.protobuf.SimpleProto.ReactorInfo.Builder builderForValue) {
        if (actorBuilder_ == null) {
          actor_ = builderForValue.build();
          onChanged();
        } else {
          actorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder mergeActor(io.element.protobuf.SimpleProto.ReactorInfo value) {
        if (actorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              actor_ != io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance()) {
            actor_ =
              io.element.protobuf.SimpleProto.ReactorInfo.newBuilder(actor_).mergeFrom(value).buildPartial();
          } else {
            actor_ = value;
          }
          onChanged();
        } else {
          actorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public Builder clearActor() {
        if (actorBuilder_ == null) {
          actor_ = io.element.protobuf.SimpleProto.ReactorInfo.getDefaultInstance();
          onChanged();
        } else {
          actorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfo.Builder getActorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getActorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      public io.element.protobuf.SimpleProto.ReactorInfoOrBuilder getActorOrBuilder() {
        if (actorBuilder_ != null) {
          return actorBuilder_.getMessageOrBuilder();
        } else {
          return actor_;
        }
      }
      /**
       * <code>required .ReactorInfo actor = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder> 
          getActorFieldBuilder() {
        if (actorBuilder_ == null) {
          actorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              io.element.protobuf.SimpleProto.ReactorInfo, io.element.protobuf.SimpleProto.ReactorInfo.Builder, io.element.protobuf.SimpleProto.ReactorInfoOrBuilder>(
                  actor_,
                  getParentForChildren(),
                  isClean());
          actor_ = null;
        }
        return actorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:S2G_ReactorInfo)
    }

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

    // @@protoc_insertion_point(class_scope:S2G_ReactorInfo)
  }

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

    // required .G2S_MSGTYPE type = 1;
    /**
     * <code>required .G2S_MSGTYPE type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required .G2S_MSGTYPE type = 1;</code>
     */
    io.element.protobuf.SimpleProto.G2S_MSGTYPE getType();

    // optional bytes requestData = 2;
    /**
     * <code>optional bytes requestData = 2;</code>
     */
    boolean hasRequestData();
    /**
     * <code>optional bytes requestData = 2;</code>
     */
    com.google.protobuf.ByteString getRequestData();
  }
  /**
   * Protobuf type {@code G2SByteStream}
   */
  public static final class G2SByteStream extends
      com.google.protobuf.GeneratedMessage
      implements G2SByteStreamOrBuilder {
    // Use G2SByteStream.newBuilder() to construct.
    private G2SByteStream(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private G2SByteStream(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public G2SByteStream getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_G2SByteStream_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.G2SByteStream.class, io.element.protobuf.SimpleProto.G2SByteStream.Builder.class);
    }

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

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

    private int bitField0_;
    // required .G2S_MSGTYPE type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.G2S_MSGTYPE type_;
    /**
     * <code>required .G2S_MSGTYPE type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .G2S_MSGTYPE type = 1;</code>
     */
    public io.element.protobuf.SimpleProto.G2S_MSGTYPE getType() {
      return type_;
    }

    // optional bytes requestData = 2;
    public static final int REQUESTDATA_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString requestData_;
    /**
     * <code>optional bytes requestData = 2;</code>
     */
    public boolean hasRequestData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bytes requestData = 2;</code>
     */
    public com.google.protobuf.ByteString getRequestData() {
      return requestData_;
    }

    private void initFields() {
      type_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
      requestData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2SByteStream parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.G2SByteStream prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code G2SByteStream}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.G2SByteStreamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_G2SByteStream_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_G2SByteStream_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.G2SByteStream.class, io.element.protobuf.SimpleProto.G2SByteStream.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.G2SByteStream.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        type_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
        bitField0_ = (bitField0_ & ~0x00000001);
        requestData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_G2SByteStream_descriptor;
      }

      public io.element.protobuf.SimpleProto.G2SByteStream getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.G2SByteStream.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.G2SByteStream build() {
        io.element.protobuf.SimpleProto.G2SByteStream result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.G2SByteStream buildPartial() {
        io.element.protobuf.SimpleProto.G2SByteStream result = new io.element.protobuf.SimpleProto.G2SByteStream(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.requestData_ = requestData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.G2SByteStream) {
          return mergeFrom((io.element.protobuf.SimpleProto.G2SByteStream)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.G2SByteStream other) {
        if (other == io.element.protobuf.SimpleProto.G2SByteStream.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasRequestData()) {
          setRequestData(other.getRequestData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required .G2S_MSGTYPE type = 1;
      private io.element.protobuf.SimpleProto.G2S_MSGTYPE type_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
      /**
       * <code>required .G2S_MSGTYPE type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .G2S_MSGTYPE type = 1;</code>
       */
      public io.element.protobuf.SimpleProto.G2S_MSGTYPE getType() {
        return type_;
      }
      /**
       * <code>required .G2S_MSGTYPE type = 1;</code>
       */
      public Builder setType(io.element.protobuf.SimpleProto.G2S_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .G2S_MSGTYPE type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
        onChanged();
        return this;
      }

      // optional bytes requestData = 2;
      private com.google.protobuf.ByteString requestData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes requestData = 2;</code>
       */
      public boolean hasRequestData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bytes requestData = 2;</code>
       */
      public com.google.protobuf.ByteString getRequestData() {
        return requestData_;
      }
      /**
       * <code>optional bytes requestData = 2;</code>
       */
      public Builder setRequestData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        requestData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes requestData = 2;</code>
       */
      public Builder clearRequestData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        requestData_ = getDefaultInstance().getRequestData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:G2SByteStream)
    }

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

    // @@protoc_insertion_point(class_scope:G2SByteStream)
  }

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

    // required .S2G_MSGTYPE type = 1;
    /**
     * <code>required .S2G_MSGTYPE type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required .S2G_MSGTYPE type = 1;</code>
     */
    io.element.protobuf.SimpleProto.S2G_MSGTYPE getType();

    // optional bool transfer = 2;
    /**
     * <code>optional bool transfer = 2;</code>
     *
     * <pre>
     * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
     * </pre>
     */
    boolean hasTransfer();
    /**
     * <code>optional bool transfer = 2;</code>
     *
     * <pre>
     * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
     * </pre>
     */
    boolean getTransfer();

    // optional bytes requestData = 3;
    /**
     * <code>optional bytes requestData = 3;</code>
     *
     * <pre>
     * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
     * </pre>
     */
    boolean hasRequestData();
    /**
     * <code>optional bytes requestData = 3;</code>
     *
     * <pre>
     * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
     * </pre>
     */
    com.google.protobuf.ByteString getRequestData();
  }
  /**
   * Protobuf type {@code S2GByteStream}
   */
  public static final class S2GByteStream extends
      com.google.protobuf.GeneratedMessage
      implements S2GByteStreamOrBuilder {
    // Use S2GByteStream.newBuilder() to construct.
    private S2GByteStream(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private S2GByteStream(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public S2GByteStream getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private S2GByteStream(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.S2G_MSGTYPE value = io.element.protobuf.SimpleProto.S2G_MSGTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              transfer_ = input.readBool();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              requestData_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_S2GByteStream_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_S2GByteStream_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.S2GByteStream.class, io.element.protobuf.SimpleProto.S2GByteStream.Builder.class);
    }

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

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

    private int bitField0_;
    // required .S2G_MSGTYPE type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.S2G_MSGTYPE type_;
    /**
     * <code>required .S2G_MSGTYPE type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .S2G_MSGTYPE type = 1;</code>
     */
    public io.element.protobuf.SimpleProto.S2G_MSGTYPE getType() {
      return type_;
    }

    // optional bool transfer = 2;
    public static final int TRANSFER_FIELD_NUMBER = 2;
    private boolean transfer_;
    /**
     * <code>optional bool transfer = 2;</code>
     *
     * <pre>
     * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
     * </pre>
     */
    public boolean hasTransfer() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool transfer = 2;</code>
     *
     * <pre>
     * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
     * </pre>
     */
    public boolean getTransfer() {
      return transfer_;
    }

    // optional bytes requestData = 3;
    public static final int REQUESTDATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString requestData_;
    /**
     * <code>optional bytes requestData = 3;</code>
     *
     * <pre>
     * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
     * </pre>
     */
    public boolean hasRequestData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes requestData = 3;</code>
     *
     * <pre>
     * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
     * </pre>
     */
    public com.google.protobuf.ByteString getRequestData() {
      return requestData_;
    }

    private void initFields() {
      type_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
      transfer_ = false;
      requestData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, transfer_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, requestData_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, transfer_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, requestData_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.S2GByteStream parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.S2GByteStream prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code S2GByteStream}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.S2GByteStreamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_S2GByteStream_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_S2GByteStream_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.S2GByteStream.class, io.element.protobuf.SimpleProto.S2GByteStream.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.S2GByteStream.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        type_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
        bitField0_ = (bitField0_ & ~0x00000001);
        transfer_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        requestData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_S2GByteStream_descriptor;
      }

      public io.element.protobuf.SimpleProto.S2GByteStream getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.S2GByteStream.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.S2GByteStream build() {
        io.element.protobuf.SimpleProto.S2GByteStream result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.S2GByteStream buildPartial() {
        io.element.protobuf.SimpleProto.S2GByteStream result = new io.element.protobuf.SimpleProto.S2GByteStream(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.transfer_ = transfer_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.requestData_ = requestData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.S2GByteStream) {
          return mergeFrom((io.element.protobuf.SimpleProto.S2GByteStream)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.S2GByteStream other) {
        if (other == io.element.protobuf.SimpleProto.S2GByteStream.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTransfer()) {
          setTransfer(other.getTransfer());
        }
        if (other.hasRequestData()) {
          setRequestData(other.getRequestData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required .S2G_MSGTYPE type = 1;
      private io.element.protobuf.SimpleProto.S2G_MSGTYPE type_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
      /**
       * <code>required .S2G_MSGTYPE type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .S2G_MSGTYPE type = 1;</code>
       */
      public io.element.protobuf.SimpleProto.S2G_MSGTYPE getType() {
        return type_;
      }
      /**
       * <code>required .S2G_MSGTYPE type = 1;</code>
       */
      public Builder setType(io.element.protobuf.SimpleProto.S2G_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .S2G_MSGTYPE type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
        onChanged();
        return this;
      }

      // optional bool transfer = 2;
      private boolean transfer_ ;
      /**
       * <code>optional bool transfer = 2;</code>
       *
       * <pre>
       * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
       * </pre>
       */
      public boolean hasTransfer() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool transfer = 2;</code>
       *
       * <pre>
       * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
       * </pre>
       */
      public boolean getTransfer() {
        return transfer_;
      }
      /**
       * <code>optional bool transfer = 2;</code>
       *
       * <pre>
       * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
       * </pre>
       */
      public Builder setTransfer(boolean value) {
        bitField0_ |= 0x00000002;
        transfer_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool transfer = 2;</code>
       *
       * <pre>
       * Í¨¹ýÈ¡ÖµÅÐ¶Ï s2g ÊÇ·ñÐèÒªÖÐ×ª 
       * </pre>
       */
      public Builder clearTransfer() {
        bitField0_ = (bitField0_ & ~0x00000002);
        transfer_ = false;
        onChanged();
        return this;
      }

      // optional bytes requestData = 3;
      private com.google.protobuf.ByteString requestData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes requestData = 3;</code>
       *
       * <pre>
       * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
       * </pre>
       */
      public boolean hasRequestData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       *
       * <pre>
       * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
       * </pre>
       */
      public com.google.protobuf.ByteString getRequestData() {
        return requestData_;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       *
       * <pre>
       * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
       * </pre>
       */
      public Builder setRequestData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        requestData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       *
       * <pre>
       * Âß¼­ÏûÏ¢ÀàÐÍ Ö»¶¨ÒåÔÚ gate -- serverÖÐ
       * </pre>
       */
      public Builder clearRequestData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        requestData_ = getDefaultInstance().getRequestData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:S2GByteStream)
    }

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

    // @@protoc_insertion_point(class_scope:S2GByteStream)
  }

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

    // required .C2G_MSGTYPE type = 1;
    /**
     * <code>required .C2G_MSGTYPE type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required .C2G_MSGTYPE type = 1;</code>
     */
    io.element.protobuf.SimpleProto.C2G_MSGTYPE getType();

    // optional .G2S_MSGTYPE rtype = 2;
    /**
     * <code>optional .G2S_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    boolean hasRtype();
    /**
     * <code>optional .G2S_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.G2S_MSGTYPE getRtype();

    // optional bytes requestData = 3;
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    boolean hasRequestData();
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    com.google.protobuf.ByteString getRequestData();
  }
  /**
   * Protobuf type {@code C2GByteStream}
   */
  public static final class C2GByteStream extends
      com.google.protobuf.GeneratedMessage
      implements C2GByteStreamOrBuilder {
    // Use C2GByteStream.newBuilder() to construct.
    private C2GByteStream(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private C2GByteStream(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public C2GByteStream getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private C2GByteStream(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.C2G_MSGTYPE value = io.element.protobuf.SimpleProto.C2G_MSGTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.G2S_MSGTYPE value = io.element.protobuf.SimpleProto.G2S_MSGTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                rtype_ = value;
              }
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              requestData_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_C2GByteStream_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_C2GByteStream_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.C2GByteStream.class, io.element.protobuf.SimpleProto.C2GByteStream.Builder.class);
    }

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

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

    private int bitField0_;
    // required .C2G_MSGTYPE type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.C2G_MSGTYPE type_;
    /**
     * <code>required .C2G_MSGTYPE type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .C2G_MSGTYPE type = 1;</code>
     */
    public io.element.protobuf.SimpleProto.C2G_MSGTYPE getType() {
      return type_;
    }

    // optional .G2S_MSGTYPE rtype = 2;
    public static final int RTYPE_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.G2S_MSGTYPE rtype_;
    /**
     * <code>optional .G2S_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    public boolean hasRtype() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .G2S_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.G2S_MSGTYPE getRtype() {
      return rtype_;
    }

    // optional bytes requestData = 3;
    public static final int REQUESTDATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString requestData_;
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    public boolean hasRequestData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    public com.google.protobuf.ByteString getRequestData() {
      return requestData_;
    }

    private void initFields() {
      type_ = io.element.protobuf.SimpleProto.C2G_MSGTYPE.C2G_REQUEST_TRANS;
      rtype_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
      requestData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, rtype_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, requestData_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, rtype_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, requestData_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.C2GByteStream parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.C2GByteStream prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code C2GByteStream}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.C2GByteStreamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_C2GByteStream_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_C2GByteStream_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.C2GByteStream.class, io.element.protobuf.SimpleProto.C2GByteStream.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.C2GByteStream.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        type_ = io.element.protobuf.SimpleProto.C2G_MSGTYPE.C2G_REQUEST_TRANS;
        bitField0_ = (bitField0_ & ~0x00000001);
        rtype_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
        bitField0_ = (bitField0_ & ~0x00000002);
        requestData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_C2GByteStream_descriptor;
      }

      public io.element.protobuf.SimpleProto.C2GByteStream getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.C2GByteStream.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.C2GByteStream build() {
        io.element.protobuf.SimpleProto.C2GByteStream result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.C2GByteStream buildPartial() {
        io.element.protobuf.SimpleProto.C2GByteStream result = new io.element.protobuf.SimpleProto.C2GByteStream(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.rtype_ = rtype_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.requestData_ = requestData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.C2GByteStream) {
          return mergeFrom((io.element.protobuf.SimpleProto.C2GByteStream)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.C2GByteStream other) {
        if (other == io.element.protobuf.SimpleProto.C2GByteStream.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasRtype()) {
          setRtype(other.getRtype());
        }
        if (other.hasRequestData()) {
          setRequestData(other.getRequestData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required .C2G_MSGTYPE type = 1;
      private io.element.protobuf.SimpleProto.C2G_MSGTYPE type_ = io.element.protobuf.SimpleProto.C2G_MSGTYPE.C2G_REQUEST_TRANS;
      /**
       * <code>required .C2G_MSGTYPE type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .C2G_MSGTYPE type = 1;</code>
       */
      public io.element.protobuf.SimpleProto.C2G_MSGTYPE getType() {
        return type_;
      }
      /**
       * <code>required .C2G_MSGTYPE type = 1;</code>
       */
      public Builder setType(io.element.protobuf.SimpleProto.C2G_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .C2G_MSGTYPE type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.C2G_MSGTYPE.C2G_REQUEST_TRANS;
        onChanged();
        return this;
      }

      // optional .G2S_MSGTYPE rtype = 2;
      private io.element.protobuf.SimpleProto.G2S_MSGTYPE rtype_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
      /**
       * <code>optional .G2S_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public boolean hasRtype() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .G2S_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.G2S_MSGTYPE getRtype() {
        return rtype_;
      }
      /**
       * <code>optional .G2S_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public Builder setRtype(io.element.protobuf.SimpleProto.G2S_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        rtype_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional .G2S_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public Builder clearRtype() {
        bitField0_ = (bitField0_ & ~0x00000002);
        rtype_ = io.element.protobuf.SimpleProto.G2S_MSGTYPE.G2S_REQUEST_GLOBAL_GAME_BEGIN;
        onChanged();
        return this;
      }

      // optional bytes requestData = 3;
      private com.google.protobuf.ByteString requestData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public boolean hasRequestData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public com.google.protobuf.ByteString getRequestData() {
        return requestData_;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public Builder setRequestData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        requestData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public Builder clearRequestData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        requestData_ = getDefaultInstance().getRequestData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:C2GByteStream)
    }

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

    // @@protoc_insertion_point(class_scope:C2GByteStream)
  }

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

    // required .G2C_MSGTYPE type = 1;
    /**
     * <code>required .G2C_MSGTYPE type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required .G2C_MSGTYPE type = 1;</code>
     */
    io.element.protobuf.SimpleProto.G2C_MSGTYPE getType();

    // optional .S2G_MSGTYPE rtype = 2;
    /**
     * <code>optional .S2G_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    boolean hasRtype();
    /**
     * <code>optional .S2G_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    io.element.protobuf.SimpleProto.S2G_MSGTYPE getRtype();

    // optional bytes requestData = 3;
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    boolean hasRequestData();
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    com.google.protobuf.ByteString getRequestData();
  }
  /**
   * Protobuf type {@code G2CByteStream}
   */
  public static final class G2CByteStream extends
      com.google.protobuf.GeneratedMessage
      implements G2CByteStreamOrBuilder {
    // Use G2CByteStream.newBuilder() to construct.
    private G2CByteStream(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private G2CByteStream(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public G2CByteStream getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private G2CByteStream(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.G2C_MSGTYPE value = io.element.protobuf.SimpleProto.G2C_MSGTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              io.element.protobuf.SimpleProto.S2G_MSGTYPE value = io.element.protobuf.SimpleProto.S2G_MSGTYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                rtype_ = value;
              }
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              requestData_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.element.protobuf.SimpleProto.internal_static_G2CByteStream_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.element.protobuf.SimpleProto.internal_static_G2CByteStream_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.element.protobuf.SimpleProto.G2CByteStream.class, io.element.protobuf.SimpleProto.G2CByteStream.Builder.class);
    }

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

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

    private int bitField0_;
    // required .G2C_MSGTYPE type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private io.element.protobuf.SimpleProto.G2C_MSGTYPE type_;
    /**
     * <code>required .G2C_MSGTYPE type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .G2C_MSGTYPE type = 1;</code>
     */
    public io.element.protobuf.SimpleProto.G2C_MSGTYPE getType() {
      return type_;
    }

    // optional .S2G_MSGTYPE rtype = 2;
    public static final int RTYPE_FIELD_NUMBER = 2;
    private io.element.protobuf.SimpleProto.S2G_MSGTYPE rtype_;
    /**
     * <code>optional .S2G_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    public boolean hasRtype() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .S2G_MSGTYPE rtype = 2;</code>
     *
     * <pre>
     * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
     * </pre>
     */
    public io.element.protobuf.SimpleProto.S2G_MSGTYPE getRtype() {
      return rtype_;
    }

    // optional bytes requestData = 3;
    public static final int REQUESTDATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString requestData_;
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    public boolean hasRequestData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes requestData = 3;</code>
     */
    public com.google.protobuf.ByteString getRequestData() {
      return requestData_;
    }

    private void initFields() {
      type_ = io.element.protobuf.SimpleProto.G2C_MSGTYPE.G2C_REQUEST_TRANS;
      rtype_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
      requestData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, rtype_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, requestData_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, rtype_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, requestData_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.element.protobuf.SimpleProto.G2CByteStream parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.element.protobuf.SimpleProto.G2CByteStream prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code G2CByteStream}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.element.protobuf.SimpleProto.G2CByteStreamOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.element.protobuf.SimpleProto.internal_static_G2CByteStream_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.element.protobuf.SimpleProto.internal_static_G2CByteStream_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.element.protobuf.SimpleProto.G2CByteStream.class, io.element.protobuf.SimpleProto.G2CByteStream.Builder.class);
      }

      // Construct using io.element.protobuf.SimpleProto.G2CByteStream.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        type_ = io.element.protobuf.SimpleProto.G2C_MSGTYPE.G2C_REQUEST_TRANS;
        bitField0_ = (bitField0_ & ~0x00000001);
        rtype_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
        bitField0_ = (bitField0_ & ~0x00000002);
        requestData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.element.protobuf.SimpleProto.internal_static_G2CByteStream_descriptor;
      }

      public io.element.protobuf.SimpleProto.G2CByteStream getDefaultInstanceForType() {
        return io.element.protobuf.SimpleProto.G2CByteStream.getDefaultInstance();
      }

      public io.element.protobuf.SimpleProto.G2CByteStream build() {
        io.element.protobuf.SimpleProto.G2CByteStream result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.element.protobuf.SimpleProto.G2CByteStream buildPartial() {
        io.element.protobuf.SimpleProto.G2CByteStream result = new io.element.protobuf.SimpleProto.G2CByteStream(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.rtype_ = rtype_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.requestData_ = requestData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.element.protobuf.SimpleProto.G2CByteStream) {
          return mergeFrom((io.element.protobuf.SimpleProto.G2CByteStream)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.element.protobuf.SimpleProto.G2CByteStream other) {
        if (other == io.element.protobuf.SimpleProto.G2CByteStream.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasRtype()) {
          setRtype(other.getRtype());
        }
        if (other.hasRequestData()) {
          setRequestData(other.getRequestData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required .G2C_MSGTYPE type = 1;
      private io.element.protobuf.SimpleProto.G2C_MSGTYPE type_ = io.element.protobuf.SimpleProto.G2C_MSGTYPE.G2C_REQUEST_TRANS;
      /**
       * <code>required .G2C_MSGTYPE type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .G2C_MSGTYPE type = 1;</code>
       */
      public io.element.protobuf.SimpleProto.G2C_MSGTYPE getType() {
        return type_;
      }
      /**
       * <code>required .G2C_MSGTYPE type = 1;</code>
       */
      public Builder setType(io.element.protobuf.SimpleProto.G2C_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .G2C_MSGTYPE type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = io.element.protobuf.SimpleProto.G2C_MSGTYPE.G2C_REQUEST_TRANS;
        onChanged();
        return this;
      }

      // optional .S2G_MSGTYPE rtype = 2;
      private io.element.protobuf.SimpleProto.S2G_MSGTYPE rtype_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
      /**
       * <code>optional .S2G_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public boolean hasRtype() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .S2G_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public io.element.protobuf.SimpleProto.S2G_MSGTYPE getRtype() {
        return rtype_;
      }
      /**
       * <code>optional .S2G_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public Builder setRtype(io.element.protobuf.SimpleProto.S2G_MSGTYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        rtype_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional .S2G_MSGTYPE rtype = 2;</code>
       *
       * <pre>
       * gate ÖÐ×ªµÄÕæÊµÐÅÏ¢
       * </pre>
       */
      public Builder clearRtype() {
        bitField0_ = (bitField0_ & ~0x00000002);
        rtype_ = io.element.protobuf.SimpleProto.S2G_MSGTYPE.S2G_NOTIFY_GLOBAL_GAME_BEGIN;
        onChanged();
        return this;
      }

      // optional bytes requestData = 3;
      private com.google.protobuf.ByteString requestData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public boolean hasRequestData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public com.google.protobuf.ByteString getRequestData() {
        return requestData_;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public Builder setRequestData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        requestData_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes requestData = 3;</code>
       */
      public Builder clearRequestData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        requestData_ = getDefaultInstance().getRequestData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:G2CByteStream)
    }

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

    // @@protoc_insertion_point(class_scope:G2CByteStream)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Player_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Player_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Team_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Team_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Room_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Room_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Active_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Active_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_OperateValue_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_OperateValue_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Reactor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Reactor_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ReactorInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ReactorInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Card_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Card_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PhaseInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PhaseInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_G2S_GetPhaseInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_G2S_GetPhaseInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_G2S_GetRoomInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_G2S_GetRoomInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_NotifyGameBegin_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_NotifyGameBegin_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_NotifyPhaseBegin_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_NotifyPhaseBegin_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_ChoosePlayers_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_ChoosePlayers_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_PerfectPlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_PerfectPlayer_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_StealthPlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_StealthPlayer_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2G_ReactorInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2G_ReactorInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_G2SByteStream_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_G2SByteStream_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_S2GByteStream_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_S2GByteStream_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_C2GByteStream_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_C2GByteStream_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_G2CByteStream_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_G2CByteStream_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\024element_simple.proto\"D\n\006Player\022\n\n\002id\030\001" +
      " \002(\003\022\014\n\004name\030\002 \002(\t\022\016\n\006roleid\030\003 \002(\005\022\020\n\010lo" +
      "cation\030\004 \002(\005\"=\n\004Team\022\031\n\010team_red\030\001 \003(\0132\007" +
      ".Player\022\032\n\tteam_blue\030\002 \003(\0132\007.Player\"k\n\004R" +
      "oom\022\n\n\002id\030\001 \002(\003\022\030\n\004type\030\002 \002(\0162\n.ROOM_TYP" +
      "E\022\014\n\004name\030\003 \002(\t\022\026\n\007players\030\004 \002(\0132\005.Team\022" +
      "\027\n\006active\030\005 \001(\0132\007.Active\"F\n\006Active\022\020\n\010pl" +
      "ayerid\030\001 \002(\003\022\016\n\006roomid\030\002 \002(\003\022\032\n\005phase\030\003 " +
      "\002(\0162\013.PHASE_TYPE\"/\n\014OperateValue\022\r\n\005valu" +
      "e\030\001 \002(\005\022\020\n\010prevalue\030\002 \001(\005\"H\n\007Reactor\022\020\n\010",
      "playerid\030\001 \002(\003\022\014\n\004type\030\002 \002(\005\022\035\n\006values\030\003" +
      " \003(\0132\r.OperateValue\"_\n\013ReactorInfo\022\027\n\005ac" +
      "tor\030\001 \002(\0132\010.Reactor\022\033\n\004type\030\002 \002(\0162\r.REAC" +
      "TOR_TYPE\022\n\n\002id\030\003 \001(\003\022\016\n\006hostid\030\004 \001(\003\"_\n\004" +
      "Card\022\016\n\006cardid\030\001 \002(\005\022\016\n\006hostid\030\002 \002(\003\022\036\n\010" +
      "response\030\003 \001(\0132\014.ReactorInfo\022\027\n\005actor\030\004 " +
      "\003(\0132\010.Reactor\"Y\n\tPhaseInfo\022\027\n\006active\030\001 \002" +
      "(\0132\007.Active\022\014\n\004last\030\002 \002(\005\022\020\n\010proposer\030\003 " +
      "\001(\005\022\023\n\004card\030\004 \001(\0132\005.Card\"4\n\020G2S_GetPhase" +
      "Info\022\020\n\010playerid\030\001 \002(\003\022\016\n\006roomid\030\002 \002(\003\"!",
      "\n\017G2S_GetRoomInfo\022\016\n\006roomid\030\001 \002(\003\"8\n\023S2G" +
      "_NotifyGameBegin\022\014\n\004last\030\001 \002(\005\022\023\n\004room\030\002" +
      " \002(\0132\005.Room\"U\n\024S2G_NotifyPhaseBegin\022\032\n\005p" +
      "hase\030\001 \002(\0162\013.PHASE_TYPE\022\014\n\004last\030\002 \002(\005\022\023\n" +
      "\004room\030\003 \002(\0132\005.Room\"t\n\021S2G_ChoosePlayers\022" +
      "\016\n\006roomid\030\001 \002(\003\022\020\n\010playerid\030\002 \002(\003\022\014\n\004typ" +
      "e\030\003 \002(\005\022\r\n\005count\030\004 \002(\005\022\021\n\tselecters\030\005 \003(" +
      "\005\022\r\n\005index\030\006 \002(\005\"@\n\021S2G_PerfectPlayer\022\016\n" +
      "\006roomid\030\001 \002(\003\022\033\n\005actor\030\002 \002(\0132\014.ReactorIn" +
      "fo\"@\n\021S2G_StealthPlayer\022\016\n\006roomid\030\001 \002(\003\022",
      "\033\n\005actor\030\002 \002(\0132\014.ReactorInfo\">\n\017S2G_Reac" +
      "torInfo\022\016\n\006roomid\030\001 \002(\003\022\033\n\005actor\030\002 \002(\0132\014" +
      ".ReactorInfo\"@\n\rG2SByteStream\022\032\n\004type\030\001 " +
      "\002(\0162\014.G2S_MSGTYPE\022\023\n\013requestData\030\002 \001(\014\"R" +
      "\n\rS2GByteStream\022\032\n\004type\030\001 \002(\0162\014.S2G_MSGT" +
      "YPE\022\020\n\010transfer\030\002 \001(\010\022\023\n\013requestData\030\003 \001" +
      "(\014\"]\n\rC2GByteStream\022\032\n\004type\030\001 \002(\0162\014.C2G_" +
      "MSGTYPE\022\033\n\005rtype\030\002 \001(\0162\014.G2S_MSGTYPE\022\023\n\013" +
      "requestData\030\003 \001(\014\"]\n\rG2CByteStream\022\032\n\004ty" +
      "pe\030\001 \002(\0162\014.G2C_MSGTYPE\022\033\n\005rtype\030\002 \001(\0162\014.",
      "S2G_MSGTYPE\022\023\n\013requestData\030\003 \001(\014*K\n\tROOM" +
      "_TYPE\022\036\n\032SIMPLE_ROOMTYPE_SIMPLE_2V2\020\001\022\036\n" +
      "\032SIMPLE_ROOMTYPE_SIMPLE_3V3\020\002*\277\002\n\nPHASE_" +
      "TYPE\022\016\n\nPHASE_NONE\020\001\022\017\n\013PHASE_BEGIN\020\002\022\023\n" +
      "\017PHASE_SKILLCARD\020\003\022\024\n\020PHASE_BATTLE_ASK\020\004" +
      "\022\026\n\022PHASE_BATTLE_ASSIT\020\005\022\032\n\026PHASE_BATTLE" +
      "_SKILLCARD\020\006\022\032\n\026PHASE_BATTLE_CALCULATE\020\007" +
      "\022\022\n\016PHASE_RECHARGE\020\010\022\021\n\rPHASE_DISCARD\020\t\022" +
      "\024\n\020PHASE_GAME_BEGIN\020\n\022\032\n\026PHASE_CHOOSE_CH" +
      "ARACTER\020\013\022\027\n\023PHASE_GAME_RECHARGE\020\014\022\024\n\020PH",
      "ASE_NOT_ACTIVE\020\r\022\r\n\tPHASE_NUM\020\016*E\n\014REACT" +
      "OR_TYPE\022\020\n\014REACTOR_NONE\020\001\022\020\n\014REACTOR_CAR" +
      "D\020\002\022\021\n\rREACTOR_SKILL\020\003*\314\001\n\013G2S_MSGTYPE\022!" +
      "\n\035G2S_REQUEST_GLOBAL_GAME_BEGIN\020\001\022\037\n\033G2S" +
      "_REQUEST_GLOBAL_GAME_END\020\002\022\032\n\026G2S_REQUES" +
      "T_NEXT_PHASE\020\003\022\035\n\031G2S_REQUEST_GETINFO_PH" +
      "ASE\020\004\022\034\n\030G2S_REQUEST_GETINFO_ROOM\020\005\022 \n\034G" +
      "2S_REQUEST_CHOOSE_CHARACTER\020\006*\333\004\n\013S2G_MS" +
      "GTYPE\022 \n\034S2G_NOTIFY_GLOBAL_GAME_BEGIN\020\001\022" +
      "\036\n\032S2G_NOTIFY_GLOBAL_GAME_END\020\002\022!\n\035S2G_N",
      "OTIFY_GLOBAL_PHASE_BEGIN\020\003\022%\n!S2G_NOTIFY" +
      "_GLOBAL_PHASE_SKILLCARD\020\004\022&\n\"S2G_NOTIFY_" +
      "GLOBAL_PHASE_BATTLE_ASK\020\005\022(\n$S2G_NOTIFY_" +
      "GLOBAL_PHASE_BATTLE_ASSIT\020\006\022,\n(S2G_NOTIF" +
      "Y_GLOBAL_PHASE_BATTLE_SKILLCARD\020\007\022,\n(S2G" +
      "_NOTIFY_GLOBAL_PHASE_BATTLE_CALCULATE\020\010\022" +
      "$\n S2G_NOTIFY_GLOBAL_PHASE_RECHARGE\020\t\022#\n" +
      "\037S2G_NOTIFY_GLOBAL_PHASE_DISCARD\020\n\022\032\n\026S2" +
      "G_RESP_GETINFO_PHASE\020\013\022\031\n\025S2G_RESP_GETIN" +
      "FO_ROOM\020\014\022\035\n\031S2G_RESP_CHOOSE_CHARACTER\020\r",
      "\022\030\n\024S2G_RESP_SKIP_PHAASE\020\016\022\037\n\033S2G_NOTIFY" +
      "_CHOOSE_CHARACTER\020d\022\032\n\026S2G_NOTIFY_ASK_PE" +
      "RFECT\020e\022\032\n\026S2G_NOTIFY_ASK_STEALTH\020f*$\n\013C" +
      "2G_MSGTYPE\022\025\n\021C2G_REQUEST_TRANS\020\001*$\n\013G2C" +
      "_MSGTYPE\022\025\n\021G2C_REQUEST_TRANS\020\001B\"\n\023io.el" +
      "ement.protobufB\013SimpleProto"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_Player_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_Player_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Player_descriptor,
              new java.lang.String[] { "Id", "Name", "Roleid", "Location", });
          internal_static_Team_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_Team_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Team_descriptor,
              new java.lang.String[] { "TeamRed", "TeamBlue", });
          internal_static_Room_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_Room_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Room_descriptor,
              new java.lang.String[] { "Id", "Type", "Name", "Players", "Active", });
          internal_static_Active_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_Active_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Active_descriptor,
              new java.lang.String[] { "Playerid", "Roomid", "Phase", });
          internal_static_OperateValue_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_OperateValue_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_OperateValue_descriptor,
              new java.lang.String[] { "Value", "Prevalue", });
          internal_static_Reactor_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_Reactor_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Reactor_descriptor,
              new java.lang.String[] { "Playerid", "Type", "Values", });
          internal_static_ReactorInfo_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_ReactorInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ReactorInfo_descriptor,
              new java.lang.String[] { "Actor", "Type", "Id", "Hostid", });
          internal_static_Card_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_Card_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Card_descriptor,
              new java.lang.String[] { "Cardid", "Hostid", "Response", "Actor", });
          internal_static_PhaseInfo_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_PhaseInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PhaseInfo_descriptor,
              new java.lang.String[] { "Active", "Last", "Proposer", "Card", });
          internal_static_G2S_GetPhaseInfo_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_G2S_GetPhaseInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_G2S_GetPhaseInfo_descriptor,
              new java.lang.String[] { "Playerid", "Roomid", });
          internal_static_G2S_GetRoomInfo_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_G2S_GetRoomInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_G2S_GetRoomInfo_descriptor,
              new java.lang.String[] { "Roomid", });
          internal_static_S2G_NotifyGameBegin_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_S2G_NotifyGameBegin_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_NotifyGameBegin_descriptor,
              new java.lang.String[] { "Last", "Room", });
          internal_static_S2G_NotifyPhaseBegin_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_S2G_NotifyPhaseBegin_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_NotifyPhaseBegin_descriptor,
              new java.lang.String[] { "Phase", "Last", "Room", });
          internal_static_S2G_ChoosePlayers_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_S2G_ChoosePlayers_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_ChoosePlayers_descriptor,
              new java.lang.String[] { "Roomid", "Playerid", "Type", "Count", "Selecters", "Index", });
          internal_static_S2G_PerfectPlayer_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_S2G_PerfectPlayer_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_PerfectPlayer_descriptor,
              new java.lang.String[] { "Roomid", "Actor", });
          internal_static_S2G_StealthPlayer_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_S2G_StealthPlayer_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_StealthPlayer_descriptor,
              new java.lang.String[] { "Roomid", "Actor", });
          internal_static_S2G_ReactorInfo_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_S2G_ReactorInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2G_ReactorInfo_descriptor,
              new java.lang.String[] { "Roomid", "Actor", });
          internal_static_G2SByteStream_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_G2SByteStream_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_G2SByteStream_descriptor,
              new java.lang.String[] { "Type", "RequestData", });
          internal_static_S2GByteStream_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_S2GByteStream_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_S2GByteStream_descriptor,
              new java.lang.String[] { "Type", "Transfer", "RequestData", });
          internal_static_C2GByteStream_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_C2GByteStream_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_C2GByteStream_descriptor,
              new java.lang.String[] { "Type", "Rtype", "RequestData", });
          internal_static_G2CByteStream_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_G2CByteStream_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_G2CByteStream_descriptor,
              new java.lang.String[] { "Type", "Rtype", "RequestData", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
